divido dos enteros (por ejemplo, 3/6) y estoy tratando de obtener un resultado de 0.500000 en kotlin. Probé algunas soluciones, pero ninguna de ellas resuelve mi problema.
val num = BigDecimal(3.div(6)) println("%.6f".format(num))pero el resultado es 0.000000
3 y 6 son ambos Int , y dividir un Int por otro da un Int : es por eso que obtienes 0. Para obtener un valor no entero, debes obtener el resultado de la división para que sea un valor no entero. Una forma de hacer esto es convertir el Int en otra cosa antes de dividirlo, por ejemplo:
val num = 3.toDouble() / 6 num ahora será un Double con un valor de 0.5 , que puede formatear como una cadena como desee.
Es posible que tengas mejor suerte con:
val num = 3.toBigDecimal().divide(6.toBigDecimal()) println(num) // prints 0.5Debe convertir ambos números a BigDecimal para que el método funcione. Esto mostrará el cociente exacto o generará una excepción si el cociente exacto no se puede representar (es decir, un decimal no terminado).
Puede configurar la escala y el modo de redondeo de la siguiente manera:
val num = 3.toBigDecimal().divide(6.toBigDecimal(), 4, RoundingMode.HALF_UP) println(num) // prints 0.5000