gpt4 book ai didi

scala - 将 BigDecimal 与整数相乘

转载 作者:行者123 更新时间:2023-12-01 11:13:46 27 4
gpt4 key购买 nike

我想将财务金额乘以数量。我知道 Scala 在底层使用 Java 的 BigDecimal,但语法似乎不一样。

val price = BigDecimal("0.01") // £0.01
val qty = 10

我试图这样做

BigDecimal(price).*(BigDecimal(qty))

但这是一个编译错误。如果我查看 Java SO 帖子,您可以将整数传递给 BigDecimal,然后像这样将其相乘
BigDecimal(price).multiply(BigDecimal(qty))

那么你如何在 Scala 中做到这一点呢?像这样将小数和整数相乘会降低精度吗?我也需要把很多这些加在一起

最佳答案

你实际上可以乘以 BigDecimalInt使用 BigDecimalmultiplication operator :

def *(that: BigDecimal): BigDecimal



Int您将提供其参数为 implicitly converted to a BigDecimal 基于:

implicit def int2bigDecimal(i: Int): BigDecimal



因此,您可以安全地乘以您的 BigDecimalInt好像它是一个 BigDecimal并收到 BigDecimal没有精度损失:
val price = BigDecimal("0.01")
// scala.math.BigDecimal = 0.01
val qty = 10
// Int = 10
price * qty // same as BigDecimal("0.01").*(10)
// scala.math.BigDecimal = 0.10

关于scala - 将 BigDecimal 与整数相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56003086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com