我想除以两个整数并在 Kotlin 中得到一个 BigDecimal 。
例如 3/6 = 0.500000。
我尝试了一些解决方案,例如:
val num = BigDecimal(3.div(6))
println("%.6f".format(num))
// The result is: 0.000000
但他们都没有解决我的问题。
3
和6
都是Int
,将一个Int
除以另一个Int
:这就是为什么你得到0。要获取非整数值,您需要将除法的结果获取为非整数值。一种方法是在分割之前将Int
转换为其他内容,例如:
val num = 3.toDouble() / 6
num
现在将是一个值为 0.5
的Double
,您可以根据需要将其格式化为字符串。
你可能有更好的运气:
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