2013-02-07 6 views
2

Я очень новичок в Java и играю с отображением сообщения с графическим интерфейсом. Поэтому, если использовать консольJAVA OptionPane.showMessageDialog формат вывода для десятичного числа

System.out.printf("Your total montly bill is $%.2f", totalCost); 

дает мне результат с десятичной точностью. Я пытаюсь сделать то же самое с этим, но я получаю больше цифр после десятичного числа, потому что totalCost - это двойной тип. Как я могу отформатировать вывод, чтобы показывать только две цифры после десятичного числа? Благодарю.

JOptionPane.showMessageDialog(null, "Your monthly payment is " + totalCost); 

ответ

6

Вы можете сделать:

JOptionPane.showMessageDialog(null, String.format("Your monthly payment is $%.2f", totalCost)); 
+0

Ха, это было просто! Большое спасибо!! :) – user1781482

+0

Добро пожаловать :) – Reimeus

4
double d = 1.234567; 
DecimalFormat df = new DecimalFormat("#.##"); 
JOptionPane.showMessageDialog(null, "Your monthly payment is " + df.format(d)); 
System.out.println(df.format(d)); 

Class DecimalFormat API

0
DecimalFormat df = new DecimalFormat("#.##"); 
       String hour = JOptionPane.showInputDialog("Please input your hourly salary: "); 
       double hr = Double.parseDouble(hour); 
       double dr = hr * 8;    
       double wr = hr * 40; 
       double mr = hr * 160; 
       double yr = mr * 12; 

    JOptionPane.showMessageDialog(null, "Yearly: " + df.format(yr) + "/" + "Monthly: " 
        + df.format(mr) + "/" + "Weekly: "+ df.format(wr) + "/" + "Hour: " + df.format(hr), 
        "Yearly Salary Calculator by the hour", JOptionPane.OK_OPTION, icon); 
+0

Пожалуйста, объясните свое решение. Что такое 'df'? Как его использовать в случае, если ОП описал? – NiematojakTomasz

+0

Вы можете отобразить дополнительную информацию, связав их с знаком плюса (+), после чего вы можете продолжить формат JOptionPane (нуль, сообщение, заголовок, тип сообщения, значок), разделив все элементы запятой (,). «/» является просто разделителем, чтобы распределить ответ более презентабельно. – monstruono1

+0

По-прежнему - без знания того, что 'df' в вашем примере кода, ваш ответ вообще не полезен. Также - уже был пример использования 'DecimalFormat'. – NiematojakTomasz

1

Вы также можете сделать: JOptionPane.showMessageDialog (это, «Ваш ежемесячный платеж " + totalCost);

Смежные вопросы