ruby 环境中的 java.bigDecimal 除法
我在 Ruby 中正确编写了包含 java 类的脚本,
require 'java'
include_class 'java.math.BigDecimal'
include_class 'java.math.RoundingMode'
在脚本中我需要除以 2 java.bigDecimal,
one = BigDecimal.new("1")
number1 = BigDecimal.new("3")
number1 = one.divide(number1,RoundingMode.new(HALF_EVEN))
因为我在这个 IDE 中没有智能感知,我不确定语法是否正确,运行时错误是:
未初始化常量::HALF_EVEN
- 我是否以正确的方式在 ruby 脚本中组合 java 对象?
- 我应该如何在 ruby env 中划分两个 java.bigDecimal 对象?
I right script in Ruby that include java classes
require 'java'
include_class 'java.math.BigDecimal'
include_class 'java.math.RoundingMode'
during the script I need to divide 2 java.bigDecimal
one = BigDecimal.new("1")
number1 = BigDecimal.new("3")
number1 = one.divide(number1,RoundingMode.new(HALF_EVEN))
since I don't have intellisense in this IDE I'm not sure the syntax is right and the runtime error is:
uninitialized constant::HALF_EVEN
- do I combine java object in the ruby scrpit in the right way?
- how should I divide two java.bigDecimal object in ruby env?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试
Try
在 Java 中它是
RoundingMode.HALF_EVEN
;它是 Ruby 中的RoundingMode::HALF_EVEN
。您还可以使用int
常量重载(即BigDecimal::ROUND_HALF_EVEN
),但是enum
重载绝对是正确的选择。您可以使用
divide(BigDecimal divisor, int scale, RoundingMode mode)
重载。下面是一个 Java 片段:
相关问题
ArithmeticException
在BigDecimal 期间抛出。划分
BigDecimal
无法准确表示1/3
(因为它具有非终止十进制扩展)API 链接
java.math.RoundingMode
java.math.BigDecimal
<块引用>
BigDecimal
由任意精度整数未缩放值和 32 位整数 scale 组成。如果为零或正数,则小数位数为小数点右侧的位数。如果为负,则该数字的未缩放值乘以 10 的缩放负次方。It would've been
RoundingMode.HALF_EVEN
in Java; it'sRoundingMode::HALF_EVEN
in Ruby. You may also be able to use theint
constants overload (i.e.BigDecimal::ROUND_HALF_EVEN
), but theenum
overload is definitely the way to go.You can control the scale of the quotient using the
divide(BigDecimal divisor, int scale, RoundingMode mode)
overload.Here's a Java snippet:
Related questions
ArithmeticException
thrown duringBigDecimal.divide
BigDecimal
can not represent1/3
exactly (because it has a non-terminating decimal expansion)API links
java.math.RoundingMode
java.math.BigDecimal