2012-09-05 2 views
3

Извините, если это очевидно, но я ищу Google, Stack Overflow и документацию Ruby, и я не смог ее найти.Ruby decimal precision

Как я мог бы сделать более высокую точность десятичной? Например, в IRB,

irb(main):001:0> 3.14159265358979323846 
=> 3.141592653589793 

Он отсекает некоторые десятичные числа. Как сохранить целое десятичное число?

ответ

3

Вы должны использовать BigDecimal класс: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/bigdecimal/rdoc/BigDecimal.html

BigDecimal обеспечивает произвольной точности с плавающей запятой десятичной арифметики.

Пример:

irb(main):009:0> BigDecimal.new("654.687465465496876516874651463549867651") 
=> #<BigDecimal:2da6878,'0.6546874654 6549687651 6874651463 549867651E3',45(54)> 
+0

о порядке спасибо :) я должен ждать 9 минут, чтобы признать, что – Doorknob

1

Попробуйте это:

require 'bigdecimal/math' 
include BigMath 
puts PI(70) #You'll get a few more digits above 70, but those will be off. 70 is by no means the maximum. 
#=> 0.314159265358979323846264338327950288419716939937510582097494459230781640628620899862802532985155833326733E1