public void TestRoundingHalfDown() { // Round Half Toward Zero (Round Half Down). Assert.AreEqual(1.36f, ComputeGlobal.RoundHalfDownEvenValue(1.365f, 2)); Assert.AreEqual(1.38f, ComputeGlobal.RoundHalfDownEvenValue(1.375f, 2)); Assert.AreEqual(27.9f, ComputeGlobal.RoundHalfDownValue(27.94f, 1)); Assert.AreEqual(-27.9f, ComputeGlobal.RoundHalfDownValue(-27.95f, 1)); Assert.AreEqual(27.9f, ComputeGlobal.RoundHalfDownValue(27.95f, 1)); Assert.AreEqual(28f, ComputeGlobal.RoundHalfDownValue(27.951f, 1)); Assert.AreEqual(28f, ComputeGlobal.RoundHalfDownValue(27.96f, 1)); Assert.AreEqual(5f, ComputeGlobal.RoundHalfDownValue(4.96f, 1)); }
internal static float Round(float value, RoundingVariant variant) { switch (variant.Style) { case Rounding.None: return(value); case Rounding.Round: return(ComputeGlobal.RoundValue(value, variant.Precision)); case Rounding.Floor: return(ComputeGlobal.FloorValue(value, variant.Precision)); case Rounding.Ceil: return(ComputeGlobal.CeilValue(value, variant.Precision)); } throw new NotImplementedException(); }