js parseFloat 减法小数过多解决办法

由于js的float类型便面 不像java那样足够 精确,所以做减法时会出现超多的小数,如何解决,我有如下方法

做法一:四舍五入的做法

1
Math.round(234432.9- 0.2);

做法二:保留几位小数

1
2
3
var t1 = 234432.9- 0.2;
 
var t2 = t1.toFixed(2);

做法三:扩大一定的倍数,对结果在缩小这个倍数
前两种做法 都会是我们的精度在降低,还有一种方法就是,如果你可以确定你的数字最多有多少位小数,你就给它扩大多少倍,按照整数的减法来做,对结果进行 刚才扩大的倍数的同等缩小

1
2
3
 var temp = Number('0.2223123') * 1000000000000;
 var temp2 = Number('234432.912113213123') * 1000000000000;
 var temp3 = (temp2 - temp) / 1000000000000;

这样结果会和java 运算的结果精度相同

虚拟主机
《Javascript语言精粹》PDF
《JavaScript设计模式与开发实践 》PDF
《JavaScript DOM编程艺术》(第二版)PDF
《JavaScript权威指南(第6版)(中文版)》PDF
广告也精彩