在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/

10-12 01:10