Функция продукта poi выдает неожиданное приближенное значение с плавающей запятой
Я использую версию Apache Poi 3.10-FINAL, чтобы прочитать пару значений ячеек и умножить.
Я умножаю две ячейки, каждая со значением 38,15 и 199,1, но результат равен 7595,664999999999 вместо 7595,67.
можно ли это исправить?
is = new FileInputStream("V5.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(is);
XSSFDataFormat format = wb.createDataFormat();
XSSFSheet sheet = wb.getSheet("Sample Test");
CreationHelper helper = wb.getCreationHelper();
FormulaEvaluator formulaEval = helper.createFormulaEvaluator();
Cell cell1 = sheet.getRow(2).getCell(1);
Cell cell2 = sheet.getRow(2).getCell(2);
cell1.setCellValue("199.1");
cell2.setCellValue("38.15");
sheet.getRow(2).getCell(3).setCellFormula("B3*C3");
System.out.println(formulaEval.evaluate(sheet.getRow(2).getCell(3)));
1 ответ
Вопрос с
Пакет: org.apache.poi.ss.formula.eval Класс: TwoOperandNumericOperation
public static final Function MultiplyEval = new TwoOperandNumericOperation() {
protected double evaluate(double d0, double d1) {
return d0*d1;
}
};