是否可以用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
非常感谢,
答案 0 :(得分:1)
您可以使用% operator:
"%.0e" % s
%[标志] [宽度] [精度]类型
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