js的float类型精度问题是一个令人头疼的坑
我使用时,需要小数点后保留两位有效数字
这时进行大数值运算,尤其是数值在99999999999999.98左右运算时,运算会出现0.01数值层次范围波动,这样运算就会失准。
我用js将大数值当字符串分割为整数部分和小数部分
分别运算然后相加,demo:
var str1_head = str1.substr(0,str1.indexOf('.')); var str1_tail = str1.substr(str1.indexOf('.')+1 ,str1.length-str1.indexOf('.')-1); console.log('str1 :'+str1_head+'.'+str1_tail); var str2_head = str2.substr(0,str2.indexOf('.')); var str2_tail = str2.substr(str2.indexOf('.')+1 ,str2.length-str2.indexOf('.')-1); console.log('str2 :'+str2_head+'.'+str2_tail); res = (parseInt(str2_head)-parseInt(str2_head))+ (parseInt(str2_tail)-parseInt(str2_tail))/100;