我只是想弄个百分比.
irb(main):001:0> (25 / 50) * 100
=> 0
Run Code Online (Sandbox Code Playgroud)
这绝对应该等于50,正如我的计算器所证实的那样(将相同的等式复制并粘贴到gcalc中).为什么Ruby拒绝这样做?
Mat*_*ley 28
它正在进行整数除法.
基本上,25是一个整数(整数),因此是50,所以当你将一个除以另一个时,它会给你另一个整数.
25 / 50 * 100 = 0.5 * 100 = 0 * 100 = 0
Run Code Online (Sandbox Code Playgroud)
更好的方法是首先乘以,然后除.
25 * 100 / 50 = 2500 / 50 = 50
Run Code Online (Sandbox Code Playgroud)
您还可以通过指定小数点显式使用浮点运算,如下所示:
25.0 / 50.0 * 100 = 0.5 * 100 = 50
Run Code Online (Sandbox Code Playgroud)
因为您将整数除以整数,所以结果在被乘以100之前被截断为整数(0.5 - > 0).
但这有效:
>> (25 / 50) * 100
=> 0
>> (25.0 / 50) * 100
=> 50.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8311 次 |
| 最近记录: |