3

如果 some_float 为 nil,我希望结果为 0。我怎么做?

some_float = 9.238
or 
some_float = nil

some_float.round(2)
4

2 回答 2

14

只需调用.to_f前一轮

some_float.to_f.round(2)

因为当你调用to_fnil 时,它会返回0.0

9.238.to_f.round(2) # => 9.24
nil.to_f.round(2) # => 0.0
于 2012-12-07T07:34:30.713 回答
2

选项1:

x = some_float ? some_float.round(2) : 0.0

选项 2(红宝石 >= 2.3.0):

x = some_float&.round(2) || 0.0
于 2012-12-07T10:26:03.913 回答