jquery中浮点数运算结果保留两位⼩数的⽅法
今天在偶然⽤到了⼀个简单的运算,38.6-38.2,结果竟然是0.3999999999999986,⼀般来说肯定是0.4。通过查询,了解到,计算机内部的⼆进制是⽆法精确表达0.1,0.2之类的数字的。
原理:
像简单的0.1
⽤⼗进制表⽰:1×10^-1 ,也就是0.1
⽽⽤⼆进制表⽰:0×2^-1+0×2^-2+0×2^-3+1×2^−4+1×2^−5……
也就是:0.0001 1001 1001 1001…基本就是个⽆限循环⼩数
但是当结果为可⽤⼆进制精确表⽰的⼩数,例如0.5
由于0.5可⽤⼆进制0.1表⽰,所以不会产⽣丢失精度的问题,看起来也是正常的
解决⽅法:
在代码中加⼊如下⽅法
//保留两位⼩数
function intToFloat(val){
return new Number(val).toFixed(2);
jquery框架原理}
在每个返回值为浮点数的地⽅调⽤该函数即可,toFixed作⽤是四舍五⼊,参数保留n位⼩数
intToFloat(float1-float2);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论