Tim*_*ain 1 ruby floating-point
Float上的truncate方法显然将float截断为整数.那么这里发生了什么:
>> 14820.truncate
=> 14820
>> (148.2 * 100)
=> 14820.0
>> 14820.0.truncate
=> 14820
>> (148.2 * 100).truncate
=> 14819
Run Code Online (Sandbox Code Playgroud)
为什么最后的计算输出不是14820?
浮点舍入错误,与之无关truncate.试试这个
(148.2 * 100) < 14820
Run Code Online (Sandbox Code Playgroud)
它回来了true.形象地说,你得到数字148.199999999而不是148.2,因为148.2不能用浮点数精确表示.