Scala和Java BigDecimal
发布时间:2020-12-16 09:40:30 所属栏目:安全 来源:网络整理
导读:我想从我的应用程序中的Java转换为基于Math的模块的脚本语言。这是由于mathy Java的可读性和功能限制。 例如,在Java中我有: BigDecimal x = new BigDecimal("1.1");BigDecimal y = new BigDecimal("1.1");BigDecimal z = x.multiply(y.exp(new BigDecimal(
我想从我的应用程序中的Java转换为基于Math的模块的脚本语言。这是由于mathy Java的可读性和功能限制。
例如,在Java中我有: BigDecimal x = new BigDecimal("1.1"); BigDecimal y = new BigDecimal("1.1"); BigDecimal z = x.multiply(y.exp(new BigDecimal("2")); 如您所见,没有BigDecimal操作符重载,简单的公式变得复杂得很快。 双打,这看起来不错,但我需要精确度。 我希望在Scala我可以做到这一点: var x = 1.1; var y = 0.1; print(x + y); 默认情况下,我会得到十进制的行为,不过Scala默认情况下不使用十进制计算。 然后我在Scala中做到这一点: var x = BigDecimal(1.1); var y = BigDecimal(0.1); println(x + y); 而且我还是得不到精确的结果。 在Scala中有没有什么不正确的? 也许我应该使用Groovy来最大限度地提高可读性(默认使用小数位数)? 解决方法
我不知道Scala,但是在Java中,BigDecimal(1.1)使用双重值初始化BigDecimal,因此它不完全等同于1.1。在Java中,您必须使用新的BigDecimal(“1.1”)。也许这将有助于Scala。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |