在Ruby中具有等效的R's signif函数会很好。
例如:
>> (11.11).signif(1)
10
>> (22.22).signif(2)
22
>> (3.333).signif(2)
3.3
>> (4.4).signif(3)
4.4 # It's usually 4.40 but that's OK. R does not print the trailing 0's
# because it returns the float data type. For Ruby we want the same.
>> (5.55).signif(2)
5.6
最佳答案
可能有更好的方法,但这似乎可以正常工作:
class Float
def signif(signs)
Float("%.#{signs}g" % self)
end
end
(1.123).signif(2) # => 1.1
(11.23).signif(2) # => 11.0
(11.23).signif(1) # => 10.0
关于ruby - 如何在Ruby中将浮点数舍入到指定数量的有效数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8382619/