Подтвердить что ты не робот

Ruby: Управление печатью в научной нотации

Если у меня есть чрезвычайно длинное число с плавающей запятой в Ruby, например:

 x = 123456789012345.to_f

когда он отображается, скажем, через to_s, он появляется в научной нотации:

 "1.23456789012345e+14"

Есть ли способ подавить форматирование в научной нотации или на другой стороне монеты, заставить ее для чрезвычайно коротких чисел с плавающей запятой?

4b9b3361

Ответ 1

Вы можете делать всевозможные действия с помощью оператора %. Например:

x = 123456789012345.to_f
"%f" % x  # => "123456789012345.000000"

y = 1.23
"%E" % y # => "1.230000E+000"

Различные параметры те же, что и для функции sprintf.

Ответ 2

Просто для удобства вы также можете управлять числом цифр после десятичной точки. Итак:

x = 1.234598
"%.3E" % x=> "1.235E+00"

Еще одна аккуратная вещь, которую вы можете сделать, это pad с пробелом слева:

x = 1.234 
"%10.3E" % x => " 1.234E+00"