Solved

# Rounding and Precesion in Javascript

Posted on 2004-04-28
233 Views
Hi
I want to format the user entered number with 14 digit precision. I am getting problem if i enter large number and in particular while rounding it.

For Example
123.45 should become 123.45000000000000 This works fine for me.

If I enter 12345.1234567890123456, this is becoming 12345.123456789013 which is wrong.
The number it should show is 12345.12345678901235.

Any Help?
0
Question by:sk5567
• 3
• 2
• 2

LVL 63

Expert Comment

Perhaps this chart helps you to see what floating point numbers mantissa is:
http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html

0

LVL 63

Expert Comment

0

LVL 1

Expert Comment

Just a suggestion as I'm not in tune with what Zvonko is saying.
1234.12345678901234

array = split()
array(1) = array(1) * 10000   // = 1234.568901234
array2 = split(array(1))
array2(1) = array2(1)*10000 // = 5678.901234

until you get to something managable maybe.
0

LVL 12

Accepted Solution

lil_puffball earned 100 total points
Check out this example:

<script>
function round(num,n){
num=(num+'').split('.');
var dec=num[1];
if(!dec||dec.length<=n){return num.join('.');}
while((dec+'').length>n){
dec=Math.round(dec/10);
if(dec<10){break;}
}
if(n==0){return Math.round(num[0]+'.'+dec);}
return num[0]+'.'+dec;
}
function format(num,n){
num=round(num,n);
num=(num+'').split('.');
var dec=num[1];
if(n==0){return num[0];}
if(!dec){dec='0';}
while((dec+'').length<n){dec+='0';}
return num[0]+'.'+dec;
}
</script>

<form>
<input type=text name=num value="12345.1234567890123456" size=30>
<input type=text size=2 value=14 name=n>
</form>
0

LVL 1

Expert Comment

exactly!

Good Job lil_puffball
0

LVL 12

Expert Comment

thank you, yoshi. :)
0

LVL 12

Expert Comment

sk5567,
Is there any reason for the B? :(
0

## Featured Post

### Suggested Solutions

When you need to keep track of a simple list of numbers or strings, the Array object is your most direct tool.  As we saw in my earlier EE Article (http://www.experts-exchange.com/A_3488.html), typical array handling might look like this: (CODE) B…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be \$37.1B.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…