如何打印6位数的浮点数 - Ruby

时间:2011-08-02 11:18:15

标签: ruby floating-point

好.. 我在红宝石阵列中有这些浮点数:-) 12.321912389 122.438783 345.23242444 89.37827383

我想将这些数字转换为6位数而不会丢失浮动属性。 就像是 :-) 12.3219 122.438 345.232 89.3782

哪个功能可以帮到我?对不起,如果这个问题对你很幼稚:-)

2 个答案:

答案 0 :(得分:3)

您可以使用sprintf“g”格式,您需要的是6个重要数字:

(0..6).map{|i| '%.6g' % (10.0**i / 3)}
=> ["0.333333", "3.33333", "33.3333", "333.333", "3333.33", "33333.3", "333333"]

答案 1 :(得分:0)

这非常愚蠢(而且很慢),但它有效(假设数字包含小数点):

numbers = [12.321912389, 122.438783, 345.23242444, 89.37827383]
numbers.map! { |num| num.to_s[0..6].to_f }
p numbers    #=> [12.3219, 122.438, 345.232, 89.3782]