Java 双倍乘
我搜索了一下,没有找到像我的例子那么简单的东西。有人能告诉我为什么我会犯这个错误吗Java 双倍乘,java,multiplication,Java,Multiplication,我搜索了一下,没有找到像我的例子那么简单的东西。有人能告诉我为什么我会犯这个错误吗 import java.util.Scanner; public class Shopping { public static void main(String[] args) { Scanner keyboard = new java.util.Scanner(System.in); System.out.println("What is the item name?"
import java.util.Scanner;
public class Shopping {
public static void main(String[] args) {
Scanner keyboard = new java.util.Scanner(System.in);
System.out.println("What is the item name?");
String itemName = keyboard.nextLine();
System.out.println("What is the item price?");
double itemPrice = keyboard.nextFloat();
System.out.println("What is the item quantity?");
double itemQuantity = keyboard.nextFloat();
double total = itemQuantity * itemPrice;
System.out.printf("%d x %s @ $%d Total $%d",itemQuantity,itemName,itemPrice,total);
} //main
} // class Shopping
运行时出错:
java.util.IllegalFormatConversionException: d != java.lang.Double
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at Shopping.main(Shopping.java:13)
我最初将itemQuantity设置为int,但这导致了错误。我认为这是因为不匹配的类型,但在我纠正它之后,错误仍然发生。
任何帮助都将不胜感激。将此更改为
System.out.printf("%f x %s @ $%f Total $%f",itemQuantity,itemName,itemPrice,total);
请注意,
%d
代表十进制,您可以参考%d代表整数,浮点数和双精度必须使用%f
为此,您将得到这种类型的错误。
试试这个
System.out.printf("%f x %s @ $%f Total $%f",itemQuantity,itemName,itemPrice,total);
您正在尝试使用
%d
格式化双精度字符,这是数字的格式键。对浮点值使用%f
。