Ruby распечатывает с плавающей точкой необязательные цифры - PullRequest
1 голос
/ 04 сентября 2010

Я пытаюсь распечатать число с плавающей точкой, которое имеет значение 5

Что я получу, когда распечатаю это 5.0, поэтому мой вопрос:

Как мне сделать так, чтобы, если значение было просто 5, оно просто печатало 5 без .0 после него, а если оно было 5.2 или около того, оно печатало это

Я огляделся по сторонам, но все, что я нашел, было либо заставить его так или иначе.

Может ли кто-нибудь помочь мне в правильном направлении? Спасибо:)

Ответы [ 3 ]

2 голосов
/ 04 сентября 2010

Попробуйте это:

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

Это будет работать даже для number = "5.30" # => '5.3'.

1 голос
/ 04 сентября 2010

Пара грязных растворов.

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
0 голосов
/ 04 сентября 2010

Почему вы хотите это сделать?5 и 5.000 передают разные сообщения, поскольку они имеют разное количество значащих цифр .Первое указывает «пять дают или минус половина», тогда как последнее указывает «пять с точностью до тысячных».

...