【发布时间】:2015-01-20 08:25:29
【问题描述】:
我正在使用 java apache 读取 Excel 数据。我在将诸如 869.87929(在 excel 中)之类的双值读取到 869.8792899999999(在 java 中)时遇到了格式问题。
我正在使用以下文件来读取 excel 数据。
1. Schema.csv:SheetName,2-int-Double
2. 文件.xls:
col1 | col2 123 | 869.87929
示例代码:
if(type.equals("Double")){
Double fval=Double.parseDouble(content[i-1]);
String sval=fval.toString();
listObjects.add(new Double(Double.parseDouble(sval)));
}
注意:来自 schema.csv 的类型和来自 file.xls 的内容 [] 值
【问题讨论】:
-
Floating point arithmetic. 你真的担心 1E-13 的差异吗??
-
if(type.equals("Double")){ String str = content[i-1]; //System.out.println(str); BigDecimal d = new BigDecimal(str); listObjects.add(d);如果我打印 str,它显示的值为 869.8792899999999。但我需要将 str 值设为 869.87929。我怎样才能得到它?
标签: java excel apache-poi export-to-csv