Ruby怎么用科学记数法显示输出?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

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

 x = 123456789012345.to_f

当它显示时,比如通过to_s让它出现在科学记数法中:

 "1.23456789012345e+14"

有没有办法以科学记数法,强制执行极短的浮点数?

提问于
用户回答回答于

你可以使用%operator做各种事情。例如:

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

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

各种选项与sprintf函数相同。

用户回答回答于

为了方便起见,还可以控制小数点后的位数。那么:

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

你可以做的另一件整洁的事情就是填充左边的空格,就像这样:

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

扫码关注云+社区