Ruby Float问题

时间:2013-10-24 01:27:05

标签: ruby-on-rails ruby

应该很简单。 我正在使用Rails并按照以下方式做一些事情:

<% n = 15 / 2 %>
<%= n %>

但是,每当我输出变量n时,它都不会给我一个小数。 基于其他计算,它看起来像是不断地向地板四舍五入,但我没有在任何地方添加任何圆形方法。

你能解释一下原因吗?我希望它实际上是圆形的。

3 个答案:

答案 0 :(得分:1)

您可以使用Numeric#ceil

n = 15 / 2.0
n = n.ceil

现在,您需要使用.to_f或将分子或分母指定为float(2.015.0),以便将其视为浮点表达式(如反对整数表达式)

答案 1 :(得分:1)

你也要求解释 - 解释是因为没有小数点,所以ruby将你的数字视为整数。当在ruby中完成整数除法时,小数点后的任何内容都会被截断。为了不丢失这些信息,你需要告诉ruby进行浮点运算,你可以用Karthikr解释的任何一种方式来做。

答案 2 :(得分:1)

问题是15和2不是浮点数而是整数。你正在做整数数学。

您可以使用.to_f或添加.0来强制使用浮点数,但您不会遇到同样的问题。如果您希望它向上舍入,那么您当然可以使用.ceil

所以,它不是'四舍五入'它是一个不同的concept