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,