如何更新我的Java程序只显示两位小数

时间:2014-10-29 02:00:04

标签: java file-io keyboard decimal rounding

类分配基本上是有一个对话框,询问用户员工姓名,小时工资和一周的工作时间。它将其输出到文本文件。我完成了那部分,老师说他发现输出有4位小数,例如。 34.5500

我在这里请求帮助,我只能显示两个小数点,所以它的34.55。这是我遵守的代码。

package out.put.of.a.file;

import javax.swing.JOptionPane;

public class OutPutOfAFile
{

public static void main(String[] args)
{
    OutputFile payFile;
    payFile = new OutputFile("payroll.txt");
    String name;
    Double pay, hours;
    String answer;
    Keyboard k;
    k = new Keyboard();

    do
    {
        name = JOptionPane.showInputDialog("Enter the employee's name:");

        pay = Double.parseDouble(JOptionPane.showInputDialog("Enter the employee's hourly wage:"));

        hours = Double.parseDouble(JOptionPane.showInputDialog("Enter the employee's total hours:"));

        payFile.writeString(name);
        payFile.writeDouble(pay);
        payFile.writeDouble(hours);
        payFile.writeEOL();

        answer = JOptionPane.showInputDialog("Do you have another employee to enter? (yes/no)");

    } while (answer.equalsIgnoreCase("yes"));

    payFile.close();
 }

}

3 个答案:

答案 0 :(得分:2)

使用printf功能。您可以使用百分比修饰符填充代码。它支持整数(%d)浮点数(%f)字符(%c)和字符串(%s)。所有都可以根据自己的喜好进行格式化。

System.out.printf("%.2f", floatVariable);

答案 1 :(得分:0)

如果我理解您的问题,您可以使用NumberFormat.format(double)之类的

NumberFormat fmt = new DecimalFormat("#.##");
payFile.writeString(name);
payFile.writeString(fmt.format(pay));
payFile.writeString(fmt.format(hours));

或者,您可以使用String.format("%.2f", pay);

之类的内容

答案 2 :(得分:0)

如果您不想导入任何内容:String.format

用法示例:

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