您的位置:首页 > Web前端 > JavaScript

js,二进制浮点数和四舍五入的问题

2015-08-20 14:01 633 查看
javascript 通过浮点数形式只能表示出有限的个数,即:在JavaScript中使用实数的时候,常常只是真实值的一个近似表示。

JavaScript采用的是IEEE-754浮点数表示法(现在使用的的编程语言大多数多是使用该表示法)。IEEE-754浮点数表示法:是一种二进制表示法,它可以精确的表示分数,比如1/2,1/4,1/8,……,1/1024,但是我们一般使用的是分数多是十进制的1/10,

1/100等,以至于二进制表示法不能精确的表示类似于0.1这样简单的数值。

JavaScript中的数值有足够的精度,可极其近似于0.1,由于JavaScript的浮点数的二进制表示法不能精确的表示出类似0.1这样的数值就有可能出现类似下例的误差:

eg1:  x=.3-.2
eg2:    y=.2-.1
可能造成 x==y;//返回false的情况
在计算时,x和y返回的只是  近似于0.1的值,由于四舍五入的误差造成x==y返回false的情况.
注:.3-0.2 返回的是0.099 999  999 999 999 98 这样的数值极近似0.1的数值。


所以一般现实中尽量使用大整数,比如尽量使用最小单位:使用‘分’代替‘元’。

JavaScript使用 toFixed(要保留的小数位数) var a = 10.12345; a.toFixed(3);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: