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

问题描述 投票:0回答:3

类分配基本上是有一个对话框,询问用户员工姓名,每小时工资和一周的工作时间。它将其输出到文本文件。我完成了那部分,老师说他发现输出有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();
 }

}
java file-io keyboard decimal rounding
3个回答
2
投票

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

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


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);这样的东西


0
投票

如果您不想导入任何东西:qazxsw poi

用法示例:

String.format
© www.soinside.com 2019 - 2024. All rights reserved.