Number Format nf = NumberFormat.getNumberInstance(Locale.US);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern("$###,###.###");
String format_val=df.format(4596.37);
num = new jxl.write.Number(i, j,Double.parseDouble(format_val),arial10format);
我来NumberFormatException
:
java.lang.NumberFormatException: For input string: "$4,596.37"
如何解决这个?
答案 0 :(得分:0)
你可以使用你用来创建字符串的相同DecimalFormat实例来使用parse()
方法解析它
有关详细信息,请参阅javaDoc
答案 1 :(得分:0)
我"思考"你想要(我没试过这个)是让细胞处理格式化,例如...
NumberFormat decimalNo = new NumberFormat("$###,###.###");
WritableCellFormat numberFormat = new WritableCellFormat(decimalNo);
//write to datasheet
Number numberCell = new Number(i, j, 4596.37, numberFormat);
excelSheet.addCell(numberCell);
请查看WritableCellFormat
了解详情
您尝试做的是......
double
值4596.37
转换为String
,格式为$###,###.###
$4,596.37
转换回double
...因为您传递的String
不符合{{1}的要求而失败} ... 一个数字没有格式概念,这是格式化程序的用途。但是,在这种情况下,Excel单元格拥有自己的内部格式化功能,可以为您处理此问题