Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

I have a function that does some math, and am using parseFloat. The value it returns must be rounded to two decimal places. I have tried Math.Round(value) but it returns nothing. Is this because math.round does not work with parseFloat? The script uses two fields, and is as follows:

function totalFields()

{

myTotal1 = document.myForm.before.value;

myTotal2 = document.myForm.after.value;

myBigTotal = [(parseFloat(myTotal1)-parseFloat(myTotal2))*100]/parseFloat(myTotal1);

return(myBigTotal)

}

function addemup()

{

document.myForm.grandtotal.value=totalFields();

}

How can I convert the value to something recognized by math.round(value), or is there another way of converting this to two decimal points? A test value could be 12.55658334973432

Thanks in advance,

lance22

JavaScript Noob

function totalFields()

{

myTotal1 = document.myForm.before.val

myTotal2 = document.myForm.after.valu

myBigTotal = [(parseFloat(myTotal1)-par

return(myBigTotal)

}

function addemup()

{

document.myForm.grandtotal

}

How can I convert the value to something recognized by math.round(value), or is there another way of converting this to two decimal points? A test value could be 12.55658334973432

Thanks in advance,

lance22

JavaScript Noob

num='234.123453'

str=new String()

str=num

str=str.match(/^\d*\.\d{2}

alert(str)

</script>

<script>

function convert(str){

str=str.match(/^\d*\.\d{2}

return str

}

</script>

<<form>

<p><input type="text" name="t1">

<input type="button" value="convert" onclick="t1.value=convert(

</form>

function totalFields()

{

myTotal1 = document.myForm.before.val

myTotal2 = document.myForm.after.valu

myBigTotal = [(parseFloat(myTotal1)-par

myBigTotal=myBigTotal+' '

myBigTotal=myBigTotal.matc

return(myBigTotal)

}

function addemup()

{

document.myForm.grandtotal

}

try this:

=======================

function totalFields()

{

myTotal1 = document.myForm.before.val

myTotal2 = document.myForm.after.valu

return Math.round(((myTotal1-myTo

}

function totalFields()

{

myTotal1 = document.myForm.before.val

myTotal2 = document.myForm.after.valu

myBigTotal = (myTotal1*100-myTotal2*100

myBigTotal=Math.round(100*

return(myBigTotal)

}

function roundFloat(fltValue) {

return Math.round(fltValue * 100) / 100;

}

As per your example;

fltValue = 12.55658334973432

12.55658334973432 * 100 = 1255.658334973432

Math.round(1255.6583349734

1255 / 100 = 12.55

So the function would output 12.55.

I hardly think this is a blind implementation.

>> There are a number of type converison problems here

Including the error in your solution?

ps

Math.round(1255.6583349734

so the output would be

1256 / 100 = 12.56

function totalFields()

{

myTotal1 = document.myForm.before.val

myTotal2 = document.myForm.after.valu

myBigTotal = (myTotal1*100-myTotal2*100

myBigTotal=Math.round(100*

return(myBigTotal)

}

Math.round(1255.6583349734

so the output would be

1256 / 100 = 12.56

-- Ah thanks dude, damn hope my code doesn't do that. :)

function roundFloat(fltValue, intDecimal) {

return Math.round(fltValue * Math.pow(10, intDecimal)) / Math.pow(10, intDecimal)

}

Not quite as simple as the other examples but this one lets you round to any number of decimal places. :) Just specify the number to be rounded (fltValue) and the number of decimal places (intDecimal).

Not trying to clutter the thread, but after taking advice from the above comments which are needed for compatibility with older browsers, you can also make note of a built-in function that works on newer browsers:

var myNumber=1.222367;//exampl

alert(myNumber.toFixed(2))

the toFixed function is in Javascript 1.5

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.

<script>

function convert(str){

str=str.match(/^\d*\.\d{3}

str=Math.round(str)/100

return str

}

</script>

<form>

<p><input type="text" name="t1">

<input type="button" value="convert" onclick="t1.value=convert(

</form>

so your function is

function totalFields()

{

myTotal1 = document.myForm.before.val

myTotal2 = document.myForm.after.valu

myBigTotal = [(parseFloat(myTotal1)-par

myBigTotal=myBigTotal+' '

myBigTotal=myBigTotal.matc

myBigTotal=Math.round(myBi

return(myBigTotal)

}