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

线程“main”java.lang.IllegalArgumentException中的异常:无法将给定对象格式化为数字

朱乐逸
2023-03-14
import java.text.DecimalFormat;
import java.util.Scanner;
public class ShoppingOrders {
    public static void main(String[] args) {
        double itemPrice, shippingFeeRate, shippingFee,totalCost;
        String nameItem;
        Scanner myScanner= new Scanner (System.in);
        DecimalFormat df = new DecimalFormat("#.00");
        
        nameItem = myScanner.nextLine();
        itemPrice = myScanner.nextDouble();
        shippingFeeRate = myScanner.nextDouble();
        
        shippingFee =shippingFeeRate*itemPrice;
        totalCost = shippingFee+itemPrice;
        
        System.out.println ("Costs for "+nameItem);
        System.out.println (df.format("Item Price: $" +itemPrice));
        System.out.println (df.format("Shipping Fee: $"+ shippingFee));
        System.out.println (df.format("Total Cost: $"+totalCost));
    }
}

共有1个答案

仉昂熙
2023-03-14

您错误地使用了DecimalFormat.Format(...)。不传递字符串。您传递给它一个表示数字的对象。(或原语数字类型,它将被装箱到表示数字的对象中。)

例如:

df.format(itemPrice)    // itemPrice will be boxed to a Double

因此,如果希望在输出中包含消息,可以这样做:

System.out.println("Item Price: $" + df.format(itemPrice));
 类似资料: