Как форматировать вывод десятичных чисел через JOptionPane

#java #swing #joptionpane #number-formatting

#java #качать #joptionpane #форматирование чисел

Вопрос:

Мое задание просит меня отформатировать значения до двух знаков после запятой. Нас просят использовать JOptionPane для ввода / вывода. Я знаю, как форматировать до двух знаков после запятой, используя System.out.printf . Однако я не думаю, что это сработает, потому что нам нужно использовать JOptionPane.

Если кто-нибудь может дать мне какой-либо совет о том, как отформатировать его в строку (чтобы я мог затем разобрать строку в double), я был бы признателен. Спасибо.

Вот мой код следующим образом:

 package Program4;
import javax.swing.*;
public class Program4 {
     public static void main (String[] args)
        {
         //Declaration of Variables
         Double AssessedValue;
         Double TaxableAmount;
         Double PropertyTax;
         Double TaxRatefor100 = 1.05;
         String StrAssessedValue;
         String OutputStr;           
         //Ask the user for the Assessed Value of their property
         StrAssessedValue = JOptionPane.showInputDialog("Enter the assessed "  
                "value of your property: ");
         //Convert the string into a double
         AssessedValue = Double.parseDouble(StrAssessedValue);          
         //Calculations
         TaxableAmount = 0.92*AssessedValue;
         PropertyTax = (TaxableAmount/100)*1.05;             
         //Store the output in a string
         OutputStr = "Assessed Value: $"   AssessedValue   "n"  
                 "Taxable Amount: $"   TaxableAmount   "n"   
                 "Tax Rate for each $100.00: $"   TaxRatefor100   
                 "n"   "Property Tax: $"   PropertyTax;
         //Output the result         
         JOptionPane.showMessageDialog(null, OutputStr, "Property Tax Values",
                 JOptionPane.WARNING_MESSAGE);           
        }
}
  

Ответ №1:

 String.format("%.2f", myNumber);
  

или

 DecimalFormat decFormat = new DecimalFormat("0.00");
  

Ответ №2:

Для ввода вы можете рассмотреть возможность использования a JSpinner с соответствующим SpinnerNumberModel или a JFormattedTextField .