diff --git a/main/NPOI.Core.csproj b/main/NPOI.Core.csproj index bed446fb1..7609abefb 100644 --- a/main/NPOI.Core.csproj +++ b/main/NPOI.Core.csproj @@ -15,7 +15,7 @@ - + diff --git a/main/SS/Formula/Functions/MathX.cs b/main/SS/Formula/Functions/MathX.cs index b7639e477..47123d2ea 100644 --- a/main/SS/Formula/Functions/MathX.cs +++ b/main/SS/Formula/Functions/MathX.cs @@ -170,13 +170,8 @@ public static double RoundDown(double n, int p) { if(p != 0) { - var temp = BigDecimal.Pow(10, p); var value = new BigDecimal(n); - var absValue = BigDecimal.Abs(value); - var multValue = BigDecimal.Multiply(absValue, temp); - var roundingValue = BigDecimal.Subtract(multValue, new BigDecimal(0.5)); - var roundedValue = BigDecimal.Round(roundingValue, MidpointRounding.AwayFromZero); - retval = Sign(n) * ((double)BigDecimal.Divide(roundedValue, temp)); + retval = (double)BigDecimal.Round(value, p); } else { diff --git a/testcases/main/SS/Formula/Functions/TestMathX.cs b/testcases/main/SS/Formula/Functions/TestMathX.cs index 1d814b086..c0ab72406 100644 --- a/testcases/main/SS/Formula/Functions/TestMathX.cs +++ b/testcases/main/SS/Formula/Functions/TestMathX.cs @@ -811,7 +811,7 @@ public void TestRoundDown() d = Double.MinValue; p = 1; AssertEquals("roundDown ", 0.0d, MathX.RoundDown(d, p)); - d = 17.56; + d = 17.56; p = 2; AssertEquals("roundDown ", 17.56, MathX.RoundDown(d, p)); } [Test]