在红宝石中用E(科学)注释舍入数字的基数

时间:2015-02-01 18:49:41

标签: ruby

是否可以用E符号围绕一个数字的基数:即

4.454554e-63 ==> 4e-63

我知道我可以这样做,但我想知道是否有人知道这样做的优雅方式......

s = '4.454554e-63'
s.scan((/^(\d*).\d*e-(\d*)/) do |n, p|
  puts "#{n.to_i}" + "e-" + "#{p}"
end

非常感谢,

1 个答案:

答案 0 :(得分:1)

您可以使用% operator

"%.0e" % s

syntax of a format sequence

  

%[标志] [宽度] [精度]类型

Field |  Float Format
------+--------------------------------------------------------------
  e   | Convert floating point argument into exponential notation
      | with one digit before the decimal point as [-]d.dddddde[+-]dd.
      | The precision specifies the number of digits after the decimal
      | point (defaulting to six).

即。在您的情况下,精度应为0