数学表达式随机向上取整

math expression Randomly rounding up

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

据我所知,Dentaku 将两个整数的除法视为整数除法。试试 2/5.0.

请改用 expression = '2.0/5.0',因为缺少“.0”,您的数字可能会被视为整数(您需要浮点数),因此您得到的整数结果为零

你搜索这个问题的答案的第一站应该是官方 documentation for /:

fix / numeric → numeric_result

Performs division: the class of the resulting object depends on the class of numeric and on the magnitude of the result. It may return a Bignum.

例如:

3/2 # => 1
(3/2).class # => Fixnum

3/2.0 # => 1.5
(3/2.0).class # => Float
如果任一值是浮点数,

Ruby 将 return 浮点数:

3.0/2 # => 1.5
(3.0/2).class # => Float