gpt4 book ai didi

java - apache.poi HSSFCell getNumericCellValue 读取不正确

转载 作者:太空宇宙 更新时间:2023-11-04 10:56:56 31 4
gpt4 key购买 nike

我使用 apache.poi 从 Excel 读取数值。

hssfCell.getNumericCellValue()

但这里是 Excel 文件的示例,结果是错误的。

Example of excel file

单元格 N14 的正确结果是 11,115(或 Excel 格式的 11,12)。但是 hssfCell.getNumericCellValue() 得到结果 11.114999999999998。

这是公式单元格,所以我可以使用dateFormatter,那么结果是11,11。

HSSFWorkbook wb = new HSSFWorkbook(new ByteArrayInputStream(importFile));
FormulaEvaluator formulaEvaluator = new HSSFFormulaEvaluator(wb);
DataFormatter dataFormatter = new DataFormatter();
formulaEvaluator.evaluate(hssfCell);
dataFormatter.formatCellValue(hssfCell, formulaEvaluator);

Excel 显示了 11,12。我怎样才能得到这个值?

最佳答案

你可以使用这个:

DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setRoundingMode(RoundingMode.CEILING);
decimalFormat.format(hssfCell.getNumericCellValue());

问题在于精度是硬编码的。如果您只使用 2 位小数,此解决方案就可以正常工作。

关于java - apache.poi HSSFCell getNumericCellValue 读取不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47266312/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com