Tag: 浮动精度

在使用Ruby的YAML哈希中使用浮点数是否安全?

如果我有一个像YAML文件 — 2.1: my product version 没有任何引号,Ruby会将2.1视为Float(至少在Syck下 – 我不确定Psych)。 使用Float作为哈希密钥是否有任何风险,只要密钥的所有其他出现都来自YAML文件或来自Ruby的文字?

Ruby编号精度与简单算术

我正在学习Ruby以获得乐趣,并且也在创建网站(但这是无关紧要的)。 在玩它时,我注意到一些“怪异”的东西 当我用irb计算4.21 + 5时,它回答9.21(很奇怪,对吧?) 当我计算4.23 + 5时,它给出9.23(哇,这绝对是奇怪的)。 当我输入4.22 + 5时,它会回答9.21999 ……(等等……这真的很奇怪)。 因此我的问题是:发生了什么? 我理解这种行为与分裂或真正的大数字,但在这个简单的情况下…. ??? 这是否意味着我无法使用Ruby开发会计应用程序? 是否有补丁或其他东西需要应用? (对我的大脑,最有可能)

为什么4.1%2使用Ruby返回0.0999999999999996?但4.2%2 == 0.2

为什么4.1%2会返回0.0999999999999996?但4.2%2 == 0.2。

ruby:在ruby中从float转换为integer会产生奇怪的结果

ree-1.8.7-2010.02 :003 > (10015.8*100.0).to_i => 1001579 ree-1.8.7-2010.02 :004 > 10015.8*100.0 => 1001580.0 ree-1.8.7-2010.02 :005 > 1001580.0.to_i => 1001580 ruby1.8.7产生相同的。 有谁知道如何根除这种异端邪说? =)