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));
}
}
您错误地使用了DecimalFormat.Format(...)
。不传递字符串
。您传递给它一个表示数字的对象。(或原语数字类型,它将被装箱到表示数字的对象中。)
例如:
df.format(itemPrice) // itemPrice will be boxed to a Double
因此,如果希望在输出中包含消息,可以这样做:
System.out.println("Item Price: $" + df.format(itemPrice));
问题内容: 我用这种格式记录日期 我需要将其转换为 我尝试过这种方式 但是我在运行时遇到这个异常 谁能帮我解决这个问题。 问题答案: 试试这个 另外,请注意这是几分钟,而几个月是。
问题内容: 但是我没有错。这是我的代码 该方法采用Object类型参数,因此这就是为什么我传递了一个给出异常的String对象的原因 线程“主”中的异常java.lang.IllegalArgumentException:无法 将给定对象格式化为数字。 但是,当我给出double值作为参数时,程序运行良好。但是,如果使用类型实参定义该方法,为什么在传递a 时却得到异常而在传递时却没有得到异常? 问
这可能看起来像是一个重复的问题,但我在下面的所有链接中都尝试了,不能得到一个适当的答案。 无法将给定对象格式化为数字组合框
我有这个格式的日期(2012-11-17T00:00:00.000-05:00)。我需要将日期转换成这种格式MM/YYYY。 我试过这个方法,但我得到了这个例外。 请看下面我的代码:
我想格式化一个日期,使用 但我有个错误:
我有一个yyyyMMdd格式的字符串,我想要DD.MM.YYYY 我的代码出现了这个错误 java.lang.IllegalArgumentException:无法将给定对象格式化为日期 有人帮忙吗?