在Ruby中为数字添加百分比

在Ruby中为数字添加百分比,ruby,Ruby,如何在Ruby中为数字添加百分比 在本例中,我想将20%添加到32.92: irb(main):001:0> 32.92 * (1 + (20 / 100)) => 32.92 谷歌用正确的答案回答39.5020/100返回0,因为如果将整数作为参数传递,则它是整数除法。相反,您可以传递浮动,如下所示: 32.92 * (1 + (20.0 / 100.0)) 或者干脆做: 32.92 * 1.2 20/100返回0,因为如果将整数作为参数传递,则是整数除法。相反,您可以传递浮

如何在Ruby中为数字添加百分比

在本例中,我想将
20%
添加到
32.92

irb(main):001:0> 32.92 * (1 + (20 / 100))
=> 32.92

谷歌用正确的答案回答
39.50

20/100
返回
0
,因为如果将整数作为参数传递,则它是整数除法。相反,您可以传递浮动,如下所示:

32.92 * (1 + (20.0 / 100.0))
或者干脆做:

32.92 * 1.2

20/100
返回
0
,因为如果将整数作为参数传递,则是整数除法。相反,您可以传递浮动,如下所示:

32.92 * (1 + (20.0 / 100.0))
或者干脆做:

32.92 * 1.2

假设您的基本值为:39.92。 您的标记为20

整数除法将导致以下结果:

20/100
# => 0
所以irb是正确的方向。这会产生更好的结果:

20.0至\u f/100
# => 0.2
因此,最终计算结果如下所示:

32.92 * (1 + (20.0 / 100.0))
final_值=(基本值+(markup.to_f/100)*基本值)。四舍五入
这将为您提供预期的值

由于您不介意对结果进行底层处理而不是四舍五入,因此可以使用整数除法获得正确的结果:

final_value=base_value+base_value*markup/100

假设您的基本值为:39.92。 您的标记为20

整数除法将导致以下结果:

20/100
# => 0
所以irb是正确的方向。这会产生更好的结果:

20.0至\u f/100
# => 0.2
因此,最终计算结果如下所示:

32.92 * (1 + (20.0 / 100.0))
final_值=(基本值+(markup.to_f/100)*基本值)。四舍五入
这将为您提供预期的值

由于您不介意对结果进行底层处理而不是四舍五入,因此可以使用整数除法获得正确的结果:

final_value=base_value+base_value*markup/100

如果我在
irb
中运行
(32.92*(1+(20.0/100.0)).round(2)
,则它可以工作,但当
32.92
是从CSV文件读取的变量时,我会得到
未定义的“72.28”方法“round”:String
?如果您读取CSV内容,它默认映射为String。您必须显式地将其转换为有意义的内容,例如
Float
。如果我运行
(32.92*(1+(20.0/100.0))。在
irb
中舍入(2)
,则它可以工作,但当
32.92
是从CSV文件读取的变量时,我会得到
未定义的“72.28”方法“舍入”:String
?如果您读取CSV内容,默认情况下,它映射为字符串。您必须显式地将其转换为有意义的内容,如
Float