Author: fanningpj
Date: Sat Apr 9 13:55:25 2022
New Revision: 1899686
URL: http://svn.apache.org/viewvc?rev=1899686&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=1899686&r1=1899685&r2=1899686&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 13:55:25 2022
@@ -950,7 +950,14 @@ public class DataFormatter {
if (numberFormat == null) {
return Double.toString(d);
}
- String formatted = numberFormat.format(new
BigDecimal(Double.toString(d)));
+ String formatted;
+ try {
+ //see https://github.com/apache/poi/pull/321 -- but this sometimes
fails as Double.toString
+ //can produce strings that can't be parsed by BigDecimal
+ formatted = numberFormat.format(new
BigDecimal(Double.toString(d)));
+ } catch (NumberFormatException nfe) {
+ formatted = numberFormat.format(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]