Ruby 十进制精度

标签 ruby floating-point decimal

很抱歉,如果这很明显,但我搜索了 Google、Stack Overflow 和 Ruby 文档,但我找不到它。

我将如何制作更高精度的小数?例如,在 IRB 中,

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

它切断了一些小数点。我如何保留整个小数点?

最佳答案

您需要使用 BigDecimal 类:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/bigdecimal/rdoc/BigDecimal.html

BigDecimal provides arbitrary-precision floating point decimal arithmetic.

例子:

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

关于Ruby 十进制精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289835/

相关文章:

ajax - 如何防止 Coldfusion 将小数添加到仅数字的 varchar 中?

c# - 1E-08 转十进制

ruby - 使用 Ruby 解析 CSV 数据

python - 如何避免在不添加额外数字的情况下在 python 中打印科学记数法?

Matlab地板错误?

go - 比较 float64 值和常量

ruby-on-rails - Rails 在类方法中使用包含的帮助器

ruby-on-rails - Rails 3.2.11 中模型子目录的单表继承

ruby-on-rails - 如何: Get version image dimensions carrierwave

c - sprintf 将十六进制数组转换为十进制字符数组只读取第一个字节