]> source.dussan.org Git - poi.git/commitdiff
scaling issue
authorPJ Fanning <fanningpj@apache.org>
Mon, 18 Oct 2021 22:40:14 +0000 (22:40 +0000)
committerPJ Fanning <fanningpj@apache.org>
Mon, 18 Oct 2021 22:40:14 +0000 (22:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894366 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/test/java/org/apache/poi/ss/tests/format/TestCellFormatPart.java
poi/src/main/java/org/apache/poi/ss/format/CellNumberFormatter.java

index e49021f5789325e3e23b3c9cd245f54f2519fe4f..101fa6c10e9f43e2e3f42a269d9375bccc57735a 100644 (file)
@@ -46,11 +46,11 @@ import org.junit.jupiter.api.Test;
 /**
  * Class for spreadsheet-based tests, such as are used for cell formatting.
  * This reads tests from the spreadsheet, as well as reading
- * flags that can be used to paramterize these tests.
+ * flags that can be used to parameterize these tests.
  * <p>
  * Each test has four parts: The expected result (column A), the format string
  * (column B), the value to format (column C), and a comma-separated list of
- * categores that this test falls in. Normally all tests are run, but if the
+ * categories that this test falls in. Normally all tests are run, but if the
  * flag "Categories" is not empty, only tests that have at least one category
  * listed in "Categories" are run.
  */
index 2da55efe90ee7a23e51ebd4dac72ce32181831fc..3f37dc5553d6635bc53fdc3936adc5bfec27b6fb 100644 (file)
@@ -16,6 +16,7 @@
 ==================================================================== */
 package org.apache.poi.ss.format;
 
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
 import java.text.FieldPosition;
@@ -424,8 +425,8 @@ public class CellNumberFormatter extends CellFormatter {
 
     @Override
     public void formatValue(StringBuffer toAppendTo, Object valueObject) {
-        double value = ((Number) valueObject).doubleValue();
-        value *= scale;
+        BigDecimal bd = BigDecimal.valueOf(((Number) valueObject).doubleValue()).multiply(BigDecimal.valueOf(scale));
+        double value = bd.doubleValue();
 
         // For negative numbers:
         // - If the cell format has a negative number format, this method