【发布时间】:2017-07-24 06:44:41
【问题描述】:
这可能看起来像是一个重复的问题,但我尝试了以下所有链接,但无法得到正确答案。
Cannot format given Object as a Number ComboBox
但我不明白出了什么问题。这是我的代码
DecimalFormat twoDForm = new DecimalFormat("#.##");
double externalmark = 1.86;
double internalmark = 4.0;
System.out.println(String.valueOf((externalmark*3+internalmark*1)/4));
String val = String.valueOf((externalmark*3+internalmark*1)/4);
String wgpa1=twoDForm.format(val); // gives exception
String wgpa2=twoDForm.format((externalmark*3+internalmark*1)/4)); // works fine
System.out.println(wgpa1);
format 方法采用 Object 类型参数,这就是为什么我传递了一个 String 对象,它给出了异常
线程“main”java.lang.IllegalArgumentException 中的异常:不能 将给定的对象格式化为数字。
但是当我给双值作为参数时,程序运行良好。但是,如果该方法是使用 Object 类型参数定义的,为什么我在传递 String 时遇到异常,而在传递 double 时没有遇到异常?
【问题讨论】:
标签: java exception overloading illegalargumentexception decimalformat