【发布时间】:2011-04-11 07:40:16
【问题描述】:
我有一个关于模数的问题。模运算求一个数除以另一个数的余数。我期待 0.5 % 0.1 = 0 的结果。但是当我在 PHP 或 .net 中运行它时,我得到 0.1。
我运行的php中的代码是:
var_dump(fmod(0.5, 0.1));
在 .net 中,我尝试了以下结果:
Console.WriteLine(0.5%0.1);
我还尝试了一个在线计算器http://www.calculatorpro.com/modulo-calculator/。
所有这 3 种方法都给了我 0.1 作为答案。
但是当我在谷歌中输入这个时,我得到了我期望的结果http://www.google.nl/search?source=ig&hl=nl&q=0.5%20mod%200.1&meta=。
这是 .net/php 中的错误还是谷歌知道正确的答案?谁能解释为什么会出现这些差异?
【问题讨论】:
-
如果你有兴趣,你可以在 JS 中得到
0.09999999999999998 -
Possible duplicate of Python modulo on floats(不同的语言,但问题——浮点错误——是一样的)