Este artículo explora diferentes formas de redondear un flotante o un doble con 2 decimales en Kotlin.

1. Usando roundToInt() función

los roundToInt() La función redondea un valor doble al entero más cercano. Se puede usar de la siguiente manera para redondear un flotante o un doble con los lugares decimales requeridos.

Descargar Código

 
El número de 0 indica el número de lugares decimales en la salida. Por lo tanto, para redondear con 4 decimales, use valor 10000.0:

Descargar Código

 
Además, considere esta versión alternativa y equivalente del código anterior:

Descargar Código

 
Vale la pena señalar que la aritmética de punto flotante es muy complicada y es posible que no siempre funcione como se esperaba. Por ejemplo, el valor 295.335 se redondea "hacia abajo" a 295.33 en lugar de redondear "hacia arriba" a 295.34.

Descargar Código

2. Usando DecimalFormat.format() función

Alternativamente, podemos llamar a la DecimalFormat.format() función para restringir el doble a 2 puntos decimales usando el patrón #.##. los RoundingMode se puede proporcionar utilizando el setRoundingMode() función.

Descargar Código

 
Tenga en cuenta que el número de # después del punto indica el número de lugares decimales. Por lo tanto, para redondear con 3 decimales, usa el patrón #.###:

Descargar Código

 
Esta solución se enfrenta al mismo problema que la roundToInt() función si no se proporciona el modo de redondeo. es decir, el valor 295.335 se redondea "hacia abajo" a 295.33 en lugar de redondear "hacia arriba" a 295.34.

Descargar Código

3. Usando String.format() función

También podemos usar el String.format() función para redondear un flotante o un doble con el número específico de lugares decimales. Esto funciona bien por el valor 295.335, Como se muestra abajo:

Descargar Código

4. Uso BigDecimal

Finalmente, podemos convertir el valor doble a un BigDecimal y restrinja el doble a 2 puntos decimales usando el setScale() función con lo especificado RoundingMode.

Descargar Código

Se trata de redondear un flotante o un doble con 2 decimales en Kotlin.