数学表达式随机四舍五入

时间:2015-08-14 15:41:21

标签: ruby parsing rubygems

在下面的代码中,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

2 个答案:

答案 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将返回一个Float
3.0/2 # => 1.5
(3.0/2).class # => Float

答案 1 :(得分:0)

请尝试表达式=' 2.0 / 5.0'相反,也许你的数字被认为是整数(你想要花车)因为缺少了#34; .0"所以你得到一个零的整数结果