BigDecimal Java / Kotlin 的表达式

Joã*_*dro 6 java bigdecimal kotlin

我需要那些了解 Java / Kotlin 的人的帮助。

我想用 BigDecimal 执行一些计算

如果使用 BigDecimal,下面的表达式会是什么样子?

(1 + 0.02) ^ (1 / 251) - 1

我尝试这样做:

val x = (BigDecimal.ONE + BigDecimal(0.02)).pow(1/251) - 1
Run Code Online (Sandbox Code Playgroud)

但是,1 除以 251 并不准确,该表达式始终返回 0

Sca*_*bat 3

1 除以 251 不准确,该表达式始终返回 0

这将导致整数除法,要解决整数除法,您可以执行以下操作1.00/251

另外,您还缺少newbefore BigDecimal(0.02),但即使您这样做了,也没有运算符+forBigDecimal并且plus应该使用该方法。

  • 在 Kotlin 中,[BigDecimal.plus](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/java.math.-big-decimal/plus.html) 函数是一个运算符函数,它[重载] (https://kotlinlang.org/docs/reference/operator-overloading.html#binary-operations)“+”。Kotlin 还取消了“new”关键字。 (2认同)