在 ruby 中,如果 float 是整数,我想将其转换为 int。例如
a = 1.0
b = 2.5
a.to_int_if_whole # => 1
b.to_int_if_whole # => 2.5
基本上,我试图避免在任何没有小数的数字上显示“.0”。我正在寻找一种优雅的(或内置的)方式来做
def to_int_if_whole(float)
(float % 1 == 0) ? float.to_i : float
end
最佳答案
一个简单的方法是:
class Float
def prettify
to_i == self ? to_i : self
end
end
那是因为:
irb> 1.0 == 1
=> true
irb> 1 == 1.0
=> true
然后你可以这样做:
irb> 1.0.prettify
=> 1
irb> 1.5.prettify
=> 1.5
关于如果整数,则 Ruby 将 float 舍入为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1077346/