irb浮动实现

Pan*_*ani 0 ruby floating-point irb

只是出于好奇而问这个问题.

我正在使用irb终端,并试图从浮动中减去浮动.

我发现

irb(main):003:0> 49.4 - 0.1
Run Code Online (Sandbox Code Playgroud)

给我

=> 49.3
Run Code Online (Sandbox Code Playgroud)

但如果我这样做

irb(main):003:0> 49.3 - 0.1
Run Code Online (Sandbox Code Playgroud)

然后我明白了

=> 49.199999999999996
Run Code Online (Sandbox Code Playgroud)

这是否与irb的实施有关?我的意思是为什么49.3 - 0.1给出了这样的表示.(具体到49.3 - 0.1,我从来没有得到过这个)

我用irb 0.9.6

Mic*_*ohl 5

你应该阅读科学家应该知道的关于浮点运算的内容.这不是Ruby或IRB特有的.

  • 我不认为将新手推荐给Goldberg的优秀文章是有用的.正如它的标题所说,它适用于计算机科学家.对于第一次遇到浮点问题的人来说,是否有更好的介绍? (2认同)