这段代码抛出了我:无法将给定的Object格式化为数字
private BigDecimal notional;
public String getNotional() {
System.out.println("notional:" + notional);
otherSymbols.setDecimalSeparator(',');
otherSymbols.setGroupingSeparator('.');
System.out.println("notional:" + notional);
String format = df.format(notional);
System.out.println("notional2:" + format);
if(notional!=null)
notional = new BigDecimal(df.format(notional));
return notional.toString();
}
为什么?
javax.el.ELException: /pages/emir/acknowledgedTransactions.xhtml @484,160 value="#{ackTxContractBean.firstleg.notional}":
java.lang.IllegalArgumentException: Cannot format given Object as a Number
名义:2279713.86 notional2:2.279.713,86
答案 0 :(得分:2)
可能是因为你传递格式而不是字符串。
您要定位的BigDecimal构造函数接受一个字符串(BigDecimal(String))DecimalFormat。格式方法似乎都不接受字符串。只需创建您的BigDeciamal,然后再格式化。无论如何,这是什么类型的名义。
找到这个thread似乎可以做你想要的。