Author: fanningpj
Date: Sat Apr  9 12:30:49 2022
New Revision: 1899683

URL: http://svn.apache.org/viewvc?rev=1899683&view=rev
Log:
[github-321] Fix issue with rounding in DataFormatter. First try broke a test.

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java?rev=1899683&r1=1899682&r2=1899683&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DataFormatter.java 
Sat Apr  9 12:30:49 2022
@@ -803,7 +803,7 @@ public class DataFormatter {
                 if (obj instanceof BigDecimal) {
                     obj = ((BigDecimal) obj).divide(divider, 
RoundingMode.HALF_UP);
                 } else if (obj instanceof Double) {
-                    obj = (new 
BigDecimal(NumberToTextConverter.toText((Double)obj))).divide(divider, 
RoundingMode.HALF_UP);
+                    obj = (Double) obj / divider.doubleValue();
                 } else {
                     throw new UnsupportedOperationException();
                 }
@@ -948,9 +948,9 @@ public class DataFormatter {
         Format numberFormat = getFormat(cell, cfEvaluator);
         double d = cell.getNumericCellValue();
         if (numberFormat == null) {
-            return NumberToTextConverter.toText(d);
+            return Double.toString(d);
         }
-        String formatted = numberFormat.format(new 
BigDecimal(NumberToTextConverter.toText(d)));
+        String formatted = numberFormat.format(new 
BigDecimal(Double.toString(d)));
         return formatted.replaceFirst("E(\\d)", "E+$1"); // to match Excel's 
E-notation
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to