今天在温习javascript内容时,想到了之前在项目中遇到的一个问题,就是javascript浮点型数据计算操作出现误差的问题,整理如下:
例子如下:
function test() { var i = 0.3; var j = 0.4; var k = 0.5; var a = j - i; var b = k - j; alert(a == b); } 运行结果为false,实际将变量a和b打印出来发现,这两个值的结果是相等的。function test() { var i = 0.3; var j = 0.4; var k = 0.5; var c = i * 10; var d = j * 10; var e = k * 10; var f = d - c; var k = e - d; alert(f ==k); } 运行结果为true,所以在实际的项目应用中,如果涉及到金额类等带有小数的情况,在用javascript进行运算时,建议全部 转化为整数进行计算,或者数据的基础定义如金额以分为单位,以避免由于javascript的数据精度问题造成项目bug