今天在项目中遇到了一个很有趣的问题,在JS中浮点数的计算,例如1.6*3.5-5.6=?
结果出人意料等于8.881784197001252e-16....开始很迷茫,难道计算器都不准了?
经过查找终于发现问题,JS里1.6*3.5=5.60000000005..于是在减去5.6就变成一个十六进制的数了
怎么解决呢?解决就简单了,把相乘结果截取两位小数就OK了.
//测试JS计算 var getResult = function () { var a = 1.6; var b = 3.5; var c = 5.6; //alert(a * b); var temp = parseFloat(a * b).toFixed(2); //alert(a * b - c); alert(temp - c); }
只是个小问题,希望大家能多注意,特别是做财务方面软件的^_^
浙公网安备 33010602011771号