Ste*_*ney 20 ruby math decimal rounding
这似乎非常低效.有人可以给我一个更好的Ruby方式.
def round_value
x = (self.value*10).round/10.0 # rounds to two decimal places
r = x.modulo(x.floor) # finds remainder
f = x.floor
self.value = case
when r.between?(0, 0.25)
f
when r.between?(0.26, 0.75)
f+0.5
when r.between?(0.76, 0.99)
f+1.0
end
end
Run Code Online (Sandbox Code Playgroud)
Pet*_*ter 33
class Float
def round_point5
(self * 2).round / 2.0
end
end
Run Code Online (Sandbox Code Playgroud)
一个经典问题:这意味着你正在使用不同的基数进行整数舍入.您可以将'2'替换为任何其他数字.
Jos*_*shD 13
将数字乘以2.
四舍五入到整数.
除以2.
(x * 2.0).round / 2.0
Run Code Online (Sandbox Code Playgroud)
在一般化形式中,您乘以每个整数所需的凹槽数(比如说圆形到.2是每个整数值的五个凹槽).然后回合; 然后除以相同的值.
(x * notches).round / notches
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7624 次 |
| 最近记录: |