为什么eval('7/14')。to_f返回0.0?

问题描述 投票:0回答:2

我必须评估字符串才能得到结果。例如,

eval('5*6.45').to_f # => 32.25

是期待。

为什么我得到:

eval('7/14').to_f # => 0.0

而不是0.5?我怎样才能获得适当的价值?在我的游戏(GUI)中,我应该有14而不是14.0

ruby
2个回答
4
投票
eval('7/14')

是相同的

7/14

它是0(整数除法)。将0转换为float会导致零作为浮点数,即0.0

如果你愿意写(即)

7.0/14

,你会得到理想的结果。


0
投票

这是因为(绝对值)7小于(绝对值)14。这给出0.然后,0转换为浮点数是0.0。

© www.soinside.com 2019 - 2024. All rights reserved.