Author: fanningpj
Date: Mon May 23 14:09:07 2022
New Revision: 1901174
URL: http://svn.apache.org/viewvc?rev=1901174&view=rev
Log:
partial implementation CEILING.MATH function (needs more testing and bad param
support)
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/CeilingMath.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCeilingMath.java
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/CeilingMath.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/CeilingMath.java?rev=1901174&r1=1901173&r2=1901174&view=diff
==============================================================================
---
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/CeilingMath.java
(original)
+++
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/CeilingMath.java
Mon May 23 14:09:07 2022
@@ -62,12 +62,14 @@ public final class CeilingMath implement
}
if (roundNegativeNumsDown && xval < 0.0) {
if (multiplier != 1.0) {
- return new NumberEval(scaledRoundUsingBigDecimal(xval,
multiplier, RoundingMode.FLOOR));
+ RoundingMode mode = multiplier < 0.0 ?
RoundingMode.CEILING : RoundingMode.FLOOR;
+ return new NumberEval(scaledRoundUsingBigDecimal(xval,
multiplier, mode));
}
return new NumberEval(Math.floor(xval));
}
if (multiplier != 1.0) {
- return new NumberEval(scaledRoundUsingBigDecimal(xval,
multiplier, RoundingMode.CEILING));
+ RoundingMode mode = multiplier < 0.0 ? RoundingMode.FLOOR :
RoundingMode.CEILING;
+ return new NumberEval(scaledRoundUsingBigDecimal(xval,
multiplier, mode));
}
return new NumberEval(Math.ceil(xval));
} catch (EvaluationException evaluationException) {
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCeilingMath.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCeilingMath.java?rev=1901174&r1=1901173&r2=1901174&view=diff
==============================================================================
---
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCeilingMath.java
(original)
+++
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCeilingMath.java
Mon May 23 14:09:07 2022
@@ -47,6 +47,11 @@ final class TestCeilingMath {
assertDouble(fe, cell, "CEILING.MATH(6.7)", 7.0, 0.00000000000001);
assertDouble(fe, cell, "CEILING.MATH(-8.1,2)", -8.0,
0.00000000000001);
assertDouble(fe, cell, "CEILING.MATH(-5.5,2,-1)", -6.0,
0.00000000000001);
+
+ assertDouble(fe, cell, "CEILING.MATH(2.5,-2)", 4.0,
0.00000000000001);
+ assertDouble(fe, cell, "CEILING.MATH(-2.5,-2)", -2.0,
0.00000000000001);
+ assertDouble(fe, cell, "CEILING.MATH(-2.5,-2,-1)", -4.0,
0.00000000000001);
+ assertDouble(fe, cell, "CEILING.MATH(0.234, 0.01)", 0.24,
0.00000000000001);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]