Ruby:用科学记数法控制打印

kmo*_*511 19 ruby

如果我在Ruby中有一个非常长的浮点数,例如:

 x = 123456789012345.to_f
Run Code Online (Sandbox Code Playgroud)

当它显示时,例如,通过to_s,它以科学记数显示:

 "1.23456789012345e+14"
Run Code Online (Sandbox Code Playgroud)

有没有办法抑制科学记数法中的格式,或硬币的另一面,强制它为极短的浮点数?

Pes*_*sto 20

你可以使用%运营商做各种各样的事情.例如:

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

y = 1.23
"%E" % y # => "1.230000E+000"
Run Code Online (Sandbox Code Playgroud)

各种选项与sprintf函数相同.