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@1899683 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ac3a104c82
commit
c77f1f9fb9
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue