【POI】POI讀取xlsx單元格內小數精度問題


 

 

問題:

單元格內文本應該是這樣:

 

 實際POI讀取到的內容是這樣:

 

而且,有的讀取正常,有的讀取不正常。

即使設置xlsx單元格的格式,也沒有作用

 

 

 

 

解決方法:

if (cell.getCellType() == CellType.NUMERIC) { return String.valueOf(new BigDecimal(cell.getNumericCellValue()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); //四舍五入去兩位【枚舉可自由替換】 }

 

更穩妥的方法:

 

if (cell.getCellType() == CellType.NUMERIC) { 
     cell.setCellType(CellType.STRING);//先重置單元格格式
     return String.valueOf(new BigDecimal(cell.getStringCellValue()).setScale(2, BigDecimal.ROUND_DOWN).doubleValue());//再 直接截取兩位【枚舉可自由替換】
}

 

 

 

 

擴展:

BigDecimal.setScale用法總結

 https://www.cnblogs.com/sxdcgaq8080/p/12123917.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM