ruby - 将 BigDecimal 转换为 String 时如何增加小数位数?

标签 ruby

我遇到了 BigDecimal 的问题。

这段代码:

x = BigDecimal.new('1.0') / 7
puts x.to_s

输出:

0.142857142857142857E0

我想增加位数。

在 JAVA 中,我可以这样做:

BigDecimal n = new BigDecimal("1");
BigDecimal d = new BigDecimal("7");

n = n.divide(d,200, RoundingMode.HALF_UP);

System.out.println(n);

输出是:

0.1428571428571428571428571428571428571428571428571428571428... (200 digits)

我看了BigDecimal documentation ,并尝试在实例化数字时设置数字,然后尝试使用 BigDecimal.limit 设置限制,但我无法打印超过 18 位数字。

我错过了什么?

我在 Windows 7 64 位上运行 ruby​​ 1.9.3p0 (2011-10-30) [i386-mingw32]

最佳答案

div 方法允许您指定数字:

x = BigDecimal.new('1.0').div( 7, 50 )
puts x

结果是:

0.14285714285714285714285714285714285714285714285714E0

关于ruby - 将 BigDecimal 转换为 String 时如何增加小数位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321239/

相关文章:

ruby-on-rails - 连接被拒绝 - connect(2) for "localhost"port 1025 - Devise Mailer

ruby - 用 cucumber 评估多个 rspec 期望

html - 具有外部变量的 HAML 中的元描述

ruby-on-rails - 用纯 Ruby 编写 Rails 模板

python - 在 Ruby/Python 中使用哪个 AES 库?

ruby - UTF-8 是 Ruby v.2 中的默认编码吗?

ruby-on-rails - Rails 服务器上的错误 - 无法加载此类文件 - sqlite3/sqlite3_native (LoadError)

javascript - 需要 "add to cart"按钮价格以根据选中的复选框更新正确的金额

ruby - Oauth2 谷歌 API ruby 客户端 : How to set Approval Prompt to Auto?

ruby - 如何更改项目的默认 gemset 和 ruby​​ 版本?