如何通过 JOptionPane 格式化十进制数的输出

Posted

技术标签:

【中文标题】如何通过 JOptionPane 格式化十进制数的输出【英文标题】:How format the output of decimal numbers via the JOptionPane 【发布时间】:2011-10-14 18:51:15 【问题描述】:

我的作业要求我将值格式化为小数点后两位。我们被要求使用 JOptionPane 进行输入/输出。我知道如何使用 System.out.printf 格式化为两位小数。但是,我认为这行不通,因为我们需要使用 JOptionPane。

如果有人能给我任何关于如何将其格式化为字符串的建议(这样我就可以将字符串解析为双精度字符串),我将不胜感激。谢谢。

我的代码如下:

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】:

对于输入,您可以考虑使用JSpinner 和适当的SpinnerNumberModel,或JFormattedTextField

【讨论】:

以上是关于如何通过 JOptionPane 格式化十进制数的输出的主要内容,如果未能解决你的问题,请参考以下文章

输入一个数,输出他的二进制码

十进制格式分隔符

当我尝试将 HTML 与 `JOptionPane` 一起使用时,会打印 HTML 标签而不是 HTML 格式

科学记数法到十进制

如何防止numpy中十进制数的自动移位

oracle forms 12. 如何显示十进制数的前导零