应该很简单。我正在使用 Rails 并按照以下方式做一些事情:
<% n = 15 / 2 %>
<%= n %>
但是,每当我输出变量 n 时,它都不会给我一个小数。根据其他计算,它看起来一直在四舍五入到地板,但我没有在任何地方添加任何类型的舍入方法。
你能解释一下为什么吗?我希望它实际上达到上限。
应该很简单。我正在使用 Rails 并按照以下方式做一些事情:
<% n = 15 / 2 %>
<%= n %>
但是,每当我输出变量 n 时,它都不会给我一个小数。根据其他计算,它看起来一直在四舍五入到地板,但我没有在任何地方添加任何类型的舍入方法。
你能解释一下为什么吗?我希望它实际上达到上限。
您也要求解释 - 解释是因为没有小数点,ruby 将您的数字视为整数。在 ruby 中进行整数除法时,小数点后的任何内容都会被截断。为了不丢失该信息,您需要告诉 ruby 进行浮点运算,这可以通过 Karthikr 解释的任何一种方式进行。
问题是 15 和 2 不是浮点数,而是整数。你正在做整数数学。
.to_f
您可以通过使用或添加它来强制浮动.0
,您不会遇到同样的问题。如果你想让它四舍五入,那么你当然可以使用.ceil
因此,这不是“四舍五入”,而是一个不同的概念。
您可以使用Numeric#ceil
n = 15 / 2.0
n = n.ceil
现在,您需要使用.to_f
或将分子或分母指定为浮点数(2.0
或15.0
),以便将其视为浮点表达式(相对于整数表达式)