在下面的代码中,2/5结果为0.0而不是0.4,这应该是正确答案
require 'rubygems'
require 'dentaku'
expression = '2/5'
calculator = Dentaku::Calculator.new
result = calculator.evaluate(expression).to_f
puts "#{result}"
我使用dentaku来评估数学表达式,可以在此处找到此gem的文档:https://github.com/rubysolo/dentaku/blob/master/README.md
答案 0 :(得分:1)
在搜索答案时,您的第一站应该是官方documentation for /
:
fix / numeric→numeric_result
执行除法:结果对象的类取决于数字类和结果的大小。它可能会返回Bignum。
例如:
3/2 # => 1
(3/2).class # => Fixnum
3/2.0 # => 1.5
(3/2.0).class # => Float
如果任何一个值是Float:
,Ruby将返回一个Float3.0/2 # => 1.5
(3.0/2).class # => Float
答案 1 :(得分:0)
请尝试表达式=' 2.0 / 5.0'相反,也许你的数字被认为是整数(你想要花车)因为缺少了#34; .0"所以你得到一个零的整数结果