【发布时间】:2016-02-12 06:58:05
【问题描述】:
我正在尝试使这个 printf 工作,但我不断收到一个异常,抱怨第一个 '%' 运算符。我已经多次像这样使用 printf 了,从来没有遇到过问题。我正在使用日食。
我的问题:
为什么我的声明不起作用,我怎样才能使它起作用?
注意:
在第 18 行,第二个 % 用于表示文字 %
printf 语句:
14 System.out.printf("Symbol: %s\n"
15 + "Name: %s\n"
16 + "Previous Closing Price: %1.2f\n"
17 + "Current Price: %1.2f\n"
18 + "Change: %1.2f%",
19 stock.symbol,
20 stock.name,
21 stock.previousClosingPrice,
22 stock.currentPrice,
23 stock.getChangePercent());
错误:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '%'
at java.util.Formatter.checkText(Unknown Source)
at java.util.Formatter.parse(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.io.PrintStream.format(Unknown Source)
at java.io.PrintStream.printf(Unknown Source)
at No8_2.main(No8_2.java:14)
价值观:
(不一定程序中的实际代码)
stock.symbol = "ORCL";
stock.name = "Oracle Corporation";
stock.previousClosingPrice = 34.5;
stock.currentPrice = 34.35;
“库存”类:
class Stock{
//Stock Object
String symbol;
String name;
double previousClosingPrice;
double currentPrice;
Stock(String sym, String nam){
//Initialize Instance Vars
this.symbol = sym;
this.name = nam;
}
public double getChangePercent(){
//Return (in %) the change in price
return ((currentPrice - previousClosingPrice)/previousClosingPrice)*100;
}
}
免责声明:这是一项家庭作业,但我已经为它编写了完整的代码。我只需要克服这个错误,并获得我的导师的许可,就可以发布这样的问题。
【问题讨论】:
-
它还没有抱怨这一点。它的问题是第 14 行。这应该在输出中的双精度后添加一个
%。 @Satya -
@Abdelhak 我添加了行号。它在抱怨第 14 行。第二个
%是故意的,将14.5变成14.5% -
@AndreasFester 解决了!谢谢!如果你愿意,你可以快速回答,我会标记它。
标签: java class object exception printf