类分配基本上是有一个对话框,询问用户员工姓名,每小时工资和一周的工作时间。它将其输出到文本文件。我完成了那部分,老师说他发现输出有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();
}
}
考虑使用printf
函数。您可以使用百分比修饰符填充代码。它支持整数(%d)浮点数(%f)字符(%c)和字符串(%s)。所有都可以根据自己的喜好进行格式化。
System.out.printf("%.2f", floatVariable);
如果我理解你的问题,你可以使用像NumberFormat.format(double)
NumberFormat fmt = new DecimalFormat("#.##");
payFile.writeString(name);
payFile.writeString(fmt.format(pay));
payFile.writeString(fmt.format(hours));
或者,您可以使用像String.format("%.2f", pay);
这样的东西