Установите точность отображения поплавка в Ruby

Можно ли установить точность отображения поплавка в Ruby?

Что-то вроде:

z = 1/3
z.to_s    #=> 0.33333333333333
z.to_s(3) #=> 0.333
z.to_s(5) #=> 0.33333

Или мне нужно переопределить метод to_s Float?

Ответ 1

z.round(2) или x.round(3) - самое простое решение. См. http://www.ruby-doc.org/core-1.9.3/Float.html#method-i-round.

Тем не менее, это будет только гарантировать, что это не более чем много цифр. В случае 1/3 это нормально, но если вы сказали 0.25.round(3), вы получите 0.25, а не 0.250.

Ответ 2

Вы можете использовать sprintf:

sprintf( "%0.02f", 123.4564564)

Ответ 4

Вы можете использовать puts

z = #{'%.3f' % z}