Java POI讀取excel中數值精度損失問題解決
描述:
excel 單元格中,純數字的單元格,讀取后 后面會加上 .0 。
例如: 1 --> 1.0
而使用下面的方法,可能會對小數存在精度損失
cell.setCellType(CellType.STRING); //讀取前將單元格設置為文本類型讀取
例如: 2.2 --> 2.1999999997
目前的解決辦法:
一. 將excel單元格改為文本類型
注意,直接修改單元格屬性不管用, 使用 分列 的方式,可以實現將數值改為文本類型。
二. java處理
public class CommonUtil { private static NumberFormat numberFormat = NumberFormat.getNumberInstance(); static { numberFormat.setGroupingUsed(false); } public static String getCellValue(Cell cell) { if (null == cell) { return ''; } Object value; switch (cell.getCellTypeEnum()) { // 省略 case NUMERIC:double d = cell.getNumericCellValue(); value = numberFormat.format(d); // 關鍵在這里! //省略 } return value == null ? '' : value.toString(); }}
上面的方法可以獲取一個正確的數值.
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
1. Wps表格怎么設置小數點個數?2. 雙十一退回的紅包在哪3. 同一個手機號可以注冊兩個qq嗎4. 天貓投影儀怎么調焦距5. 微信怎么群視頻6. 抖音流星雨禮物怎么獲得7. 手機怎么看b站注冊日期8. 微信折疊群怎么設置9. 抖音怎么設置私密賬號別人看不到10. 蟲蟲助手如何注銷賬號
