1
respuesta

redonde el double a 56 dolares

Al imprimir el ejemplo de Maria da el siguiente resultado;

Mi nombre es Maria, tengo 30 años y hoy gasté 56.000 dolares

y segun el ejemplo debe de imprimir 55.99 dolares,

no se por que lo redondea, alguien tiene alguna respuesta?

1 respuesta

¡Hola Octavio, espero que estés bien!

Entiendo tu problema. Parece que estás teniendo dificultades con el redondeo de un número decimal en Java. En el ejemplo que compartiste, se está utilizando el método String.format() para formatear el valor de un double con dos decimales. Sin embargo, parece que el redondeo no está funcionando como esperabas.

Una forma de solucionar este problema es utilizando la clase DecimalFormat para controlar el redondeo de los números decimales. Aquí te muestro un ejemplo de cómo podrías hacerlo:

import java.text.DecimalFormat;

public class Main {
    public static void main(String[] args) {
        double valor = 55.9999;
        DecimalFormat df = new DecimalFormat("#.##");
        System.out.println("Mi nombre es María, tengo 30 años y hoy gasté " + df.format(valor) + " dólares");
    }
}

Al ejecutar este código, el resultado impreso será "Mi nombre es María, tengo 30 años y hoy gasté 56 dólares", ya que el valor se redondeará hacia arriba. Si deseas que el valor se redondee hacia abajo, puedes utilizar DecimalFormat df = new DecimalFormat("#.00").

Espero que esta solución te sea de ayuda. ¡Si tienes alguna otra pregunta, no dudes en preguntar!

Espero haber ayudado y buenos estudios!