如何让ruby显示更多小数位?

时间:2015-12-08 00:53:09

标签: ruby floating-point decimal

我目前正在做一个项目欧拉问题,要求我找到重复小数的模式。但是,Ruby太快了,我无法找到一种方法来将小数字充实到第n位。

例如:

1/7.to_f => 0.14285714285714285

但是我试图这样做:

1/7.to_f => 0.14285714285714285714285714285757142857142857

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

所有语言都支持能够定义输出中浮点的精度。 Ruby使用通用格式字符串:

pi = 355.0/113.0
'%1.5f' % pi # => "3.14159"

或者,在您的情况下:

'%1.20f' % (1.0/7.0) # => "0.14285714285714284921"
'%1.20f' % (1.to_f/7) # => "0.14285714285714284921"
'%1.20f' % (1/7.to_f) # => "0.14285714285714284921"

我建议您阅读字符串%Kernel::sprintf的文档。 Ruby如何确定使用固定或浮动数学以及to_f的用法都包含在任何体面的Ruby教程中。

答案 1 :(得分:1)

通过以10的幂递增计算,您可以轻松获得任意数量的重复数字

10**100/7
=> 1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428