如何仅打印6位数字的浮动-Ruby

如何仅打印6位数字的浮动-Ruby,ruby,floating-point,Ruby,Floating Point,好的。。 我在ruby数组中有这些浮点数:-) 12.321912389 122.438783 345.23242444 89.37827383 我想把这些数字转换成6位数字而不丢失float属性。 比如:-) 12.3219 122.438 345.232 89.3782 哪个函数可以帮助我?如果您觉得这个问题很幼稚,很抱歉:-)这很愚蠢(而且很慢),但它可以工作(假设数字包含小数点): 您可以使用“g”格式,您需要的是6位有效数字: numbers = [12.321912389, 122.

好的。。 我在ruby数组中有这些浮点数:-) 12.321912389 122.438783 345.23242444 89.37827383

我想把这些数字转换成6位数字而不丢失float属性。 比如:-) 12.3219 122.438 345.232 89.3782

哪个函数可以帮助我?如果您觉得这个问题很幼稚,很抱歉:-)

这很愚蠢(而且很慢),但它可以工作(假设数字包含小数点):

您可以使用“g”格式,您需要的是6位有效数字:

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