2016-09-13 1 views
-4

Начал снимать класс Java в школе и делать дополнительный кредит и вам нужна помощь в определении того, как просто иметь 2 десятичных знака. Благодарим вас за помощь. Christopher2 десятичных разряда в Java, только что начал заниматься Java в классе на прошлой неделе

импорт java.util.Scanner;

общественного класса ChapterTwoEx8 { государственной статической силы основных (String [] арг) {

//Create a Scanner object to read keyboard input. 
    Scanner keyboard = new Scanner(System.in); 


//Declare Constants 
    final double SALES_TAX_RATE = 0.07; 
    final double TIP = 0.15; 

//Declare Variables 
    double yourMealsPrice; 
    double wifeMealsPrice; 
    double sum; 
    double tip; 
    double totalCostOfMeal; 
    double salesTax; 


//Get the prices of the meals. 
    System.out.println("Please enter the price of your wives meal."); 
    wifeMealsPrice = keyboard.nextDouble(); 
    System.out.println("Please enter the price of your meal."); 
    yourMealsPrice = keyboard.nextDouble(); 

    //Calculate cost of the meals. 
    sum = (double) wifeMealsPrice + yourMealsPrice; 

    //Calcute the sales tax 
    salesTax = (double) sum * SALES_TAX_RATE; 

    //Calcute tip 
    tip = (double) sum * TIP; 

    //Calcute total cost of meal 
    totalCostOfMeal = (double) sum + tip + salesTax; 

    System.out.println("Your meals were $ " + sum); 
    System.out.println("The total tax you paid is $ " + salesTax); 
    System.out.println("The tip you should leave is $ " + tip); 
    System.out.println("The amount of money you paid to keep your wife happy this night is $ " + totalCostOfMeal); 






     } 

}

+1

Во-первых, вы не должны использовать парные (или плавающие) деньги. Используйте BigDecimal. Это также обеспечивает округление и форматирование. Но в целом для печати до 2 дп попробуйте использовать 'System.out.printf' –

+0

Благодарим вас за информацию. Я попытаюсь выяснить, как отредактировать неподходящую информацию. – Christopher

ответ

0

Используйте NumberFormat

NumberFormat nf = NumberFormat.getInstance(); 
nf.setMaximumFractionDigits(2); 
String formattedSum = nf.format(sum); 
System.out.println("Your meals were $ " + formattedSum); 
System.out.println("The total tax you paid is $ " + nf.format(salesTax)); 
System.out.println("The tip you should leave is $ " + nf.format(tip)); 
System.out.println("The amount of money you paid to keep your wife happy this night is $ " + nf.format(totalCostOfMeal)); 

Или вы могли бы избавиться от доллара знаки и просто использовать NumberFormat.getCurrencyInstance(); вместо NumberFormat.getInstance();