https://bz.apache.org/bugzilla/show_bug.cgi?id=69812

            Bug ID: 69812
           Summary: Incorrect Rounding in DataFormatter
           Product: POI
           Version: 5.4.1-FINAL
          Hardware: PC
                OS: Mac OS X 10.1
            Status: NEW
          Severity: normal
          Priority: P2
         Component: POI Overall
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

When using the "millions" format on a number in Excel, #,##0,, the formatted
value that is produced can be incorrectly rounded.

With the cell value "25396277490", Excel shows a value of "25,396"

DataFormatter produces a value of "25,400"

Stepping through the debugger, everything looks correct until
https://github.com/apache/poi/blob/559485a0fe2735c1ecab7d343a45f5d0bd1877e1/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java#L971

I believe using the double value of the cell causes floating point rounding
errors.

If you replace numberFormat.format(BigDecimal.valueOf(d)) with
numberFormat.format(new BigDecimal(((XSSFCell) cell).getRawValue())) the output
is correct

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to