Ruby打印出带有可选数字的浮点数

时间:2010-09-04 11:22:42

标签: ruby floating-accuracy

我正在尝试打印出一个值为5

的浮点数

打印出来时我得到的是5.0,所以我的问题是:

如何制作,如果该值只是5,则只会打印5,而.0之后不会5.2,如果是{{1}}或者,它会打印出来吗?

我环顾四周,但我发现的一切都是以这种或那种方式强迫它。

有人可以帮助我朝正确的方向发展吗?谢谢:))

3 个答案:

答案 0 :(得分:2)

试试这个:

number.to_s.gsub(/\.?0*$/, '')

这甚至适用于number = "5.30" # => '5.3'

答案 1 :(得分:1)

一些肮脏的解决方案。

1

a = 5.0
puts a.ceil == a ? a.ceil : a

2

5.1.to_s.chomp ".0" #=> 5.1
5.0.to_s.chomp ".0" #=> 5

答案 2 :(得分:0)

你为什么要这样做? 55.000传达了不同的消息,因为它们具有不同数量的significant figures。第一个表示“五个给出或减半”,而后者表示“五到最接近的千分之一”。