我有一个要使用ruby eval评估的字符串。该字符串可以包含任何简单的算术公式,例如“ 44/5”。
问题是的结果eval('44/5')
将是8(而不是8.8)。
它是评估的一部分(因为1.0*eval('44/5')
给出8.0)。
我没有找到任何额外的参数来评估eval。
我什至尝试添加或包装字符串以将其转换为:
'0.0+44/5'
要么
'1.0*(44/5)'
但这仍然不给我8.8。
eval('44.0/5')
给了我想要的结果,但是我不想在字符串中插入任何东西(我准备好在必要时将其包装起来)。
知道如何解决该问题吗?
您还可以mathn
在Ruby的核心库中使用:
require 'mathn'
res = eval('44/5') #=> (44/5)
res.to_f #=> 8.8
该库将在适当时自动转换为有理数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句