0

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

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

但是,每当我输出变量 n 时,它都不会给我一个小数。根据其他计算,它看起来一直在四舍五入到地板,但我没有在任何地方添加任何类型的舍入方法。

你能解释一下为什么吗?我希望它实际上达到上限。

4

3 回答 3

1

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

于 2013-10-24T02:37:59.127 回答
1

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

.to_f您可以通过使用或添加它来强制浮动.0,您不会遇到同样的问题。如果你想让它四舍五入,那么你当然可以使用.ceil

因此,这不是“四舍五入”,而是一个不同的概念

于 2013-10-24T03:03:37.313 回答
1

您可以使用Numeric#ceil

n = 15 / 2.0
n = n.ceil

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

于 2013-10-24T01:31:44.150 回答