我在Facebook上遇到了一个有趣的问题。他要求他使用MATLAB R2014a(64位版本)并运行此代码: -
x = 0.45;
min = fix((x)*60);
fprintf('min = %d \n', min);
x = 20.45
min = fix((x-20)*60);
fprintf('min = %d \n', min);
结果如下:
>> tx
min = 27
min = 26
这是不正确的,因为(20.45 - 20)应该给出与0.45相同的结果,但事实并非如此。
他也尝试了%f,但它仍然给出了相同的结果。
起初,我认为存储浮点存在问题,但在计算之后,它似乎不是正确答案。
所以,我认为这个问题很有趣,也很有挑战性。有谁可以帮我解释一下这是怎么发生的?
谢谢!
答案 0 :(得分:2)