读取excel
该单元格显示的是2.07
通过 cells.getCell(10) 方法拿这个值
但是拿到的值是2.0699999999999998 很奇怪
我把这条数据单独拿到另一个excel中,再次执行读取excel代码
此时,读取到的数据是2.07,很奇怪
通过使用下面的方法就可以解决失真的问题
先判断是否为数字类型,如果是的话,转换一下就可以了
if(NumberUtils.isCreatable(cell.getStringCellValue())){ value = numberFormat.format(Double.valueOf(cell.getRichStringCellValue().getString())); }
整体处理方法如下
代码如下
private static NumberFormat numberFormat = NumberFormat.getInstance(); private String getCellValue(Cell cell) { String value = null; if(cell == null) return ""; logger.info("进入getCellValue:{}",cell.getCellType()); if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) { value = cell.getBooleanCellValue() + ""; } else { cell.setCellType(Cell.CELL_TYPE_STRING); if(NumberUtils.isCreatable(cell.getStringCellValue())){ value = numberFormat.format(Double.valueOf(cell.getRichStringCellValue().getString())); }else { value = cell.getRichStringCellValue().getString(); } } if(!StringUtils.isEmpty(value)){ value = value.replaceAll(" ",""); } return (value == null ? "" : value).trim(); }