Java:我的编译器说我的一个printf语句坏了,我可以';我不明白为什么
这是我第一次问问题,如果这看起来很奇怪,我很抱歉。 这是我的全部代码。与星星分离的线就是断裂的线Java:我的编译器说我的一个printf语句坏了,我可以';我不明白为什么,java,Java,这是我第一次问问题,如果这看起来很奇怪,我很抱歉。 这是我的全部代码。与星星分离的线就是断裂的线 import java.util.Scanner; public class CashRegister { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); double price; final double TAX_
import java.util.Scanner;
public class CashRegister
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
double price;
final double TAX_RATE = 0.085;
final double SURCHARGE = 0.04;
final int MAX_PRICE = 500;
double addedSurcharge = 0;
do
{
do
{
System.out.print("Cost of Item (enter 0 or negative value to exit; max is $500.00): ");
price = keyboard.nextDouble();
} while (price > 500);
int dollars = (int) price;
int cents = (int) price - dollars;
int convertPrice = (dollars * 100) + cents;
if (convertPrice < 1500)
{
addedSurcharge = (convertPrice * SURCHARGE) / 100;
System.out.printf("Surcharge of $%.2f added.", addedSurcharge);
System.out.println();
}
double withTax = ((convertPrice * TAX_RATE) / 100) + addedSurcharge + convertPrice;
**System.out.printf("Amount due (with 8.5% tax): $%.2f", withTax);**
System.out.println();
} while (price > 0);
System.out.println("Done.");
}
import java.util.Scanner;
公营收银机
{
公共静态void main(字符串[]args)
{
扫描仪键盘=新扫描仪(System.in);
双倍价格;
最终双重税率=0.085;
最终双倍附加费=0.04;
最终整数最大价格=500;
双加源=0;
做
{
做
{
系统输出打印(“项目成本(输入0或负值退出;最大值为$500.00):”;
price=keyboard.nextDouble();
}而(价格>500);
整数美元=(整数)价格;
整数美分=(整数)价格-美元;
国际货币兑换价格=(美元*100)+美分;
如果(价格<1500)
{
附加资源=(转换价格*附加费)/100;
System.out.printf(“增加了%.2f美元的附加费”,增加了资源);
System.out.println();
}
双倍含税=((转换价格*税率)/100)+附加资源+转换价格;
**System.out.printf(“到期金额(含8.5%税费):$%.2f”,含税费)**
System.out.println();
}而(价格>0);
System.out.println(“完成”);
}
您需要转义用作百分比符号的百分比符号:8.5%%
而不是8.5%
System.out.printf(“到期金额(含8.5%%税):$%.2f”,含税);
将%更改为%%Use%%
以指示百分比符号。作为旁注,int cents=(int)价格-美元;
即使用户输入两倍的金额也会产生0。哦,哇,速度太快了。谢谢,我不知道你在printf中需要2%的符号。答案中是%%
而不是\%
固定的。你可以看出我不经常使用printf,