当前位置: 首页 > 知识库问答 >
问题:

Javaprintf语句给出错误

尹俊贤
2023-03-14

我在家庭作业中使用Eclipse,我真的很挣扎。目标是编写一个工资单程序,让用户输入他们的姓名、工作时间、工资率、联邦和州预扣税,然后输出他们预扣金额的计算信息以及他们的净工资。

我使用了我熟悉的println语句来显示输出,但老师希望我们使用系统。出来printf函数,我根本无法让它工作。如果我使用println语句,所有的值都会填充,但由于某种原因,我无法让printf执行相同的操作。我错过了什么?如果我使用printf函数,它会给我以下错误

"Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method printf(Locale, String, Object[]) in the type PrintStream is not applicable for the arguments (String, String, String)
at Payrolls.main(Payrolls.java:31)"

这是我的代码:

import java.util.Scanner;

public class Payrolls
{
   public static void main(String []args)
   {


   Scanner input = new Scanner(System.in);

   System.out.print("Enter employee first name: ");
   String employeeFirst = input.nextLine();

   System.out.print("Enter employee last name: ");
   String employeeLast = input.nextLine();

   System.out.print("Enter number of hours worked this week: ");
   int hoursWorked = input.nextInt();

   System.out.print("Enter hourly pay rate of the employee: ");
   double payRate = input.nextDouble();

   System.out.print("Enter federal tax withholding rate: ");
   double fedTax = input.nextDouble();

   System.out.print("Enter state tax withholding rate: ");
   double stateTax = input.nextDouble();

   System.out.println(" ");
   System.out.println(" ");
   //System.out.printf("%-20s %s\n", employeeFirst, employeeLast);
   System.out.println("Name: " + employeeFirst +" " +employeeLast);

   System.out.println("Hours Worked:" + hoursWorked);

   System.out.println("Pay Rate:" + payRate);



   double grossPay;
   grossPay = payRate * hoursWorked;

   System.out.println("Gross Pay:" + grossPay);

   double deductions;
   deductions = grossPay * fedTax;

   System.out.println("\tDeductions:");
   System.out.println("\t\tFederal Witholding %: $" +  deductions);

   double statTax;
   statTax = grossPay * stateTax;

   System.out.println("\t\tState Witholding %: $" +  statTax);

   double totalDeduction;
   totalDeduction = deductions + statTax;

   System.out.println("\t\tTotal Deduction: $" + totalDeduction);


   double netPay;
   netPay = grossPay - totalDeduction;

   System.out.println("Net Pay:" + netPay);
   }
}

共有2个答案

从智明
2023-03-14

请确保您使用的是JDK 1.5或更高版本,因为该版本中添加了varargs,更具体地说是printf。仅使用JDK 1.5编译是不够的,还需要使用JRE 1.5运行程序。

此外,请参阅printf的Javadocs:一个需要String作为其第一个参数,另一个需要Locale实例。

如下所示:

<代码>系统。出来printf(“%s\n”,employeeFirst,employeeLast)

应该可以工作(这就是您所评论的代码所做的)。

高展
2023-03-14
  • Printf methode可从java版本1.5获得。确保jdk版本大于或等于1.5
  • 错误告诉您printf方法的第一个参数必须是区域设置类型请参见此处的exmaple
 类似资料:
  • 问题内容: 当我使用 我得到错误 错误1054:where子句中的未知列’U687678601’ 但是当我键入 它工作正常。 我正在使用mysql。 我知道这是一个新手问题,但是谁能解释为什么会这样,我可以通过编程方式添加引号吗?通过代码添加引号是个好主意吗? 谢谢 问题答案: 当我们向SQL查询提供字符串/ varchar类型时,必须使用’‘指定它。对于非varchar类型,则无需提供“。这就是

  • 我正在尝试通过使用if else条件在我的代码中的textbox上添加验证 我在textbox上添加了focusListener,当我从textbox中删除焦点时,它将检查条件 我还在chekbox旁边创建了一个标签,它将根据条件显示文本 如果textbox中的文本不等于“Hi”,则应在textbox旁边的标签中打印“Hello 否则应打印“再见” 请帮忙

  • 我对if else语句有些问题,请支持

  • 所以我试图使用switch语句为位置x和位置y设置边界。我已经在下面提供了我的代码和错误信息。另外,我刚接触java,所以对我来说这可能是一个愚蠢的问题,但老实说,我目前不知道更好的问题。

  • 我得到了3个不同的错误:标识符预期,意外的令牌,未知的类:'score'。这些错误在第57-69行。 这个代码的重点是检查一个检查列表是否被检查,如果是,加1得分。它根据得分将输出文本更改为不同的字符串。 ^^XML代码^^

  • 在下面的查询中,我使用了strftime函数来获取字符串格式的日期。它在sqlite数据库中运行良好。但是,当数据库更改为进程时,它抛出了一个错误,即“SQLSTATE[42883]:未定义函数:7错误:函数strftime(未知,没有时区的时间戳)不存在” 下面的代码在SQLite中工作,但在Postgres数据库中引发了一个错误