在Ruby中为数字添加百分比
如何在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,因为如果将整数作为参数传递,则是整数除法。相反,您可以传递浮
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
。