'-15.48' - '43'
我刚才在控制台中输入了这段代码,结果如下:
-58.480000000000004
为什么会这样呢?如何才能得到正确的结果?
'-15.48' - '43'
我刚才在控制台中输入了这段代码,结果如下:
-58.480000000000004
double
相同。(-15.48 - 43).toFixed(2);
toFixed()
var num = 5.56789;
var n=num.toFixed(2);
result:5.57
http://en.wikipedia.org/wiki/Machine_epsilon
人类计数使用十进制,而机器则主要使用二进制。10 == 2x5;2和5是互质的数字。然而,这个微不足道的事实却有一个令人不愉快的后果。
可以使用笔和纸按照http://en.wikipedia.org/wiki/Repeating_decimal#Every_rational_number_is_either_a_terminating_or_repeating_decimal中所述的方法进行检查。
典型的陷阱可能包括:
AVG := AVG + X[i];
的无限循环,其中 0 < X[i] < const
。如果循环运行足够长的时间,您会发现在某个时刻 AVG 不再改变其值,从那时起所有元素都被丢弃了。Value_1 == Value_2
。对于理论数学来说,这些值是相等的,但对于实际计算机来说,它们并不相等。