formatting Java - formato doble valor como monto en dólares





2 Answers

Puedes usar un DecimalFormat

DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(amt));

Eso te dará una impresión con siempre 2dp.

Pero realmente, deberías usar BigDecimal por dinero, debido a problemas de punto flotante

java formatting double

Necesito formatear el doble "amt" como una cantidad en dólares impresa ("$" + dólares + "." + Centavos) de manera que haya dos dígitos después del decimal.

¿Cuál es la mejor manera de hacerlo?

if (payOrCharge <= 1)
{
    System.out.println("Please enter the payment amount:");
    double amt = keyboard.nextDouble();
    cOne.makePayment(amt);
    System.out.println("-------------------------------");
    System.out.println("The original balance is " + cardBalance + ".");
    System.out.println("You made a payment in the amount of " + amt + ".");
    System.out.println("The new balance is " + (cardBalance - amt) + ".");
}
else if (payOrCharge >= 2)
{
    System.out.println("Please enter the charged amount:");
    double amt = keyboard.nextDouble();
    cOne.addCharge(amt);
    System.out.println("-------------------------------");
    System.out.println("The original balance is $" + cardBalance + ".");
    System.out.println("You added a charge in the amount of " + amt + ".");
    System.out.println("The new balance is " + (cardBalance + amt) + ".");
}



Puedes usar printf para una sola línea

System.out.printf("The original balance is $%.2f.%n", cardBalance);

Esto siempre imprimirá dos decimales, redondeando según sea necesario.




Related