Scala BigDecimal分部
发布时间:2020-12-16 09:04:51 所属栏目:安全 来源:网络整理
导读:scala BigDecimal上的除法运算符有什么用? val d1 = BigDecimal(2)val d2 = BigDecimal(3)val div = d1 / d2 //throws ArithmeticException: non-terminating decimal expansion 为了使其工作,您需要在小数上定义DECIMAL128上下文.不幸的是,我能看到这样做
scala BigDecimal上的除法运算符有什么用?
val d1 = BigDecimal(2) val d2 = BigDecimal(3) val div = d1 / d2 //throws ArithmeticException: non-terminating decimal expansion 为了使其工作,您需要在小数上定义DECIMAL128上下文.不幸的是,我能看到这样做的唯一方法是: val div = new BigDecimal(d1.bigDecimal.divide(d2.bigDecimal,MathContext.DECIMAL128)) //OK! 但这只是一团糟!我错过了什么吗? 解决方法
这是Scala中的已知错误 – >看看
Ticket #1812.显然,它已在Scala 2.8中修复.您还可以从错误报告中下载修复程序,该修复程序实现了一个附加了MathContext的BigDecimal.使用给定的
Decimal.scala ,我可以写这样的东西,让它运行没有错误:
val d1 = Decimal128(1) val d2 = Decimal128(3) val d3 = d1 / d2 // works,gives a truncated result 因此,您可以编译给定的Decimal.scala文件并将其添加到类路径中,也可以等待Scala 2.8,它已经将它放在标准库中. 编辑参见Scala标准库的revision 18021,以了解对实现此目的的BigDecimal的更改. 希望能帮助到你 :) – Flaviu Cipcigan (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |