mirror of https://github.com/apache/poi.git
[github-321] Fix issue with rounding in DataFormatter. First try broke a test.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1899686 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4682903e6a
commit
be2a929f44
|
@ -950,7 +950,14 @@ public class DataFormatter {
|
||||||
if (numberFormat == null) {
|
if (numberFormat == null) {
|
||||||
return Double.toString(d);
|
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
|
return formatted.replaceFirst("E(\\d)", "E+$1"); // to match Excel's E-notation
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue