将百分比添加到Ruby中的数字

use*_*353 1 ruby

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

在这个例子中,我想添加20%32.92

irb(main):001:0> 32.92 * (1 + (20 / 100))
=> 32.92
Run Code Online (Sandbox Code Playgroud)

Google回答正确的答案;39.50

41 *_* 6c 6

假设您的base_value是:39.92。您的加价为20

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

20 / 100
# => 0
Run Code Online (Sandbox Code Playgroud)

因此,irb是正确的方向。这样可以得到更好的结果:

20.to_f / 100
# => 0.2
Run Code Online (Sandbox Code Playgroud)

因此,最终的计算将如下所示:

final_value = (base_value + (markup.to_f / 100) * base_value).round
Run Code Online (Sandbox Code Playgroud)

这给您期望值。

由于您不介意将结果设为底数而不是四舍五入,因此可以使用整数除法获得正确的结果:

final_value = base_value + base_value * markup / 100
Run Code Online (Sandbox Code Playgroud)


Mar*_*pka 5

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

32.92 * (1 + (20.0 / 100.0))
Run Code Online (Sandbox Code Playgroud)

或者简单地做:

32.92 * 1.2
Run Code Online (Sandbox Code Playgroud)