嗨我试图减去2个十进制数字,它会不断返回一些奇怪的数字。
var x = 0.00085022
var y = 0.00085050
var answer = x - y
alert(answer)
这是它返回的数字 -2.8000000000007186e-7
答案 0 :(得分:2)
最大小数位数为17,但浮点运算并不总是100%准确 http://www.w3schools.com/js/js_numbers.asp
试试这个:
var x = 0.00085022 * 100000000;
var y = 0.00085050 * 100000000;
var answer = (x - y) / 100000000;
alert(answer);
答案 1 :(得分:1)
您正在使用更高的数字减去,并且计算正在遍历更低的数字。是-2.0更低,小数位精度达到指数级更高。
如果我们围绕它们,我们得到:
var x = 85022
var y = 85050
var answer = x - y
alert(answer); // = -28