java+script数值计算_javascript数值计算得注意精度问题

javascript 数值运算精度

使用javascript进行数值运算的时候要格外小心和注意,因为javas的浮点数的精度问题很严重,比如44444.1+4.2的值并不是想象中的44448.2,而是44448.299999999995 ,同样对于乘法也是有很大的问题,如55.7*12的值不是668.4,而是668.4000000000001 ;如果学了一些其他语言如C/C++,Java的都知道,虽然也存在浮点数精度的问题,但是对于这种比较简单的计算,他们还是能够应付自如的,不会出现这样的错误,所以说在javascript上对于一些小数的计算问题上还是得多注意,以免出现不知所谓的计算错误。

以为自己尝试的一些列子:

js测试用例

var c = 4444.1;

var d = 4.2;

var e = c + d;

document.write(e.toFixed(1) + " || ");//这个值是正确的4448.3

var a = 44444.1;

var b = 4.2;

document.write(a + b + " || "); //这个值就错误了,变为44448.299999999995

var f = 55.7;

var g = 12;

document.write(f * g); //这个值就错误了,变为668.4000000000001

对于这些问题,在自己可以预知结果的情况下,可以试用一下数学函数进行一些修正,如

1、四舍五入函数,

Math.round()2、取小于或等于值a的最接近整数函数

Math.floor(a)3、取大于或等于值a的最小整数函数

Math.ceil()4、使用数值对象自身的方法,

e.toFixed(n)//e为数值,n为保留小数位数,方法为保留n位小数等等。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值