В вашем конкретном случае (ваш метод возвращает строку), вы можете сделать это одним из способов, используя метод String # format () , о котором говорил @Taslim, он будет выглядеть примерно так :
public static String dollarAmount(int quarters2, int dimes2, int nickels2, int pennies2) {
double total = (quarters2 * .25) + (dimes2 * .10) + (nickels2 * .05) + (pennies2 * .01);
return String.format("Total: $%.2f", total);
}
Еще один способ заключается в использовании метода DecimalFormat # format () , как уже упоминалось @Jens, и он будет выглядеть примерно так:
public static String dollarAmount(int quarters2, int dimes2, int nickels2, int pennies2) {
double total = (quarters2 * .25) + (dimes2 * .10) + (nickels2 * .05) + (pennies2 * .01);
DecimalFormat df = new DecimalFormat(".##", DecimalFormatSymbols.getInstance(Locale.US));
return "Total: $" + df.format(total);
}
DecimalFormatSymbols.getInstance (Locale.US) , который вы видите в инициализации переменной DecimalFormat, используется для того, чтобы ваше числовое значение было представлено в числовом формате вашей конкретной страны.
И еще один, более длинный способ сделать это для меньших значений - использовать методы Math # pow () и Math # round () , например:
public static String dollarAmount(int quarters2, int dimes2, int nickels2, int pennies2) {
double total = (quarters2 * .25) + (dimes2 * .10) + (nickels2 * .05) + (pennies2 * .01);
long factor = (long) Math.pow(10, 2); // 2 is the decimal places
total = total * factor;
long tmp = Math.round(total);
return "Total: $" + String.valueOf((double) tmp / factor);
}
Для больших и более сложных значений, возможно, вы захотите сделать это, используя BigDecimal # setScale () метод, который обеспечивает гораздо большую точность при выполнении вычислений со значениями типа данных Float или Double (, которые являются неточными ) .... как-то так:
public static String dollarAmount(int quarters2, int dimes2, int nickels2, int pennies2) {
double total = (quarters2 * .25) + (dimes2 * .10) + (nickels2 * .05) + (pennies2 * .01);
BigDecimal bd = new BigDecimal(total);
// The 2 used below is the decimal places. You can
// use whatever rounding mode you want.
bd = bd.setScale(2, RoundingMode.HALF_UP);
return "Total: $" + String.valueOf(bd.doubleValue());
}
Сделай свой выбор;)