在Ruby in Rails的所有大小数中设置精度



是否有任何方法可以定义Ruby或Ruby中所有大型数字的精度?

我使用限制方法设置了精度,但这似乎没有解决:

irb(main):003:0> BigDecimal.limit
=> 25
irb(main):004:0> num = '0.' + 0.to_s * 30 + '1'
=> "0.0000000000000000000000000000001"
irb(main):005:0> decimal = BigDecimal(num)
=> #<BigDecimal:9614780,'0.1E-30',9(45)>
irb(main):006:0> puts decimal.to_s
0.0000000000000000000000000000001
=> nil
irb(main):007:0> BigDecimal.limit
=> 25

我是否误解了limit方法的用法?还有其他可以实现我想要的吗?

该应用使用Ruby 2.3.4和Rails 4.2.8

免责声明:我已经知道如何截断,以及如何仅设置单个价值观的精度。我真的需要一种设置"全球"的方法(我的意思是,对于我实例化或操纵的所有新大小数(。

您可以尝试

 2.1.7 :056 > num = '0.' + 0.to_s * 30 + '1'
 => "0.0000000000000000000000000000001" 
2.1.7 :057 > decimal = BigDecimal(num)
 => #<BigDecimal:7be2178,'0.1E-30',9(45)> 
2.1.7 :058 > puts decimal.to_s
0.0000000000000000000000000000001
 => nil 
2.1.7 :059 > '%.2f' % decimal
 => "0.00" 

最新更新