如何在 Kotlin 中除以两个 Int a 得到一个 BigDecimal



我想除以两个整数并在 Kotlin 中得到一个 BigDecimal 。

例如 3/6 = 0.500000。

我尝试了一些解决方案,例如:

val num = BigDecimal(3.div(6))
println("%.6f".format(num))
// The result is: 0.000000

但他们都没有解决我的问题。

36都是Int,将一个Int除以另一个Int:这就是为什么你得到0。要获取非整数值,您需要将除法的结果获取为非整数值。一种方法是在分割之前将Int转换为其他内容,例如:

val num = 3.toDouble() / 6

num现在将是一个值为 0.5Double,您可以根据需要将其格式化为字符串。

你可能有更好的运气:

val num = 3.toBigDecimal().divide(6.toBigDecimal())
println(num)
// prints 0.5

您必须将这两个数字转换为 BigDecimal 才能使该方法正常工作。这将显示确切商,或者如果无法表示确切商(即非终止小数),则抛出异常。

您可以按如下方式设置比例和舍入模式:

val num = 3.toBigDecimal().divide(6.toBigDecimal(), 4, RoundingMode.HALF_UP)
println(num)
// prints 0.5000

参考文章链接

Int 除以 Int 将仅得到 Int 结果。要获得浮点数结果,您需要将其中一个数字转换为浮点数。

你也可以使用 toFloat() 函数。

var result = Int.toFloat()/Int

最新更新