在Ruby中浮点n小数位

时间:2013-12-10 20:52:47

标签: ruby

Ruby在使用浮点数进行除法时仅返回前17个小数位。

1 / 13.to_f => 0.07692307692307693

是否可以返回更多小数位?

例如,我如何找到22 / 7的第100个小数位?

2 个答案:

答案 0 :(得分:2)

您可以使用Ruby的BigDecimal。

require 'bigdecimal'
require 'bigdecimal/util'

value = BigDecimal.new('22') / BigDecimal.new('7')

RubyDocs

答案 1 :(得分:1)

可以使用乘法来完成,但它不是最优雅的解决方案。

a = 22
b = 7
nth_decimal = 100

a*(10**nth_decimal) / b