コード例 #1
0
        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));
        }
コード例 #2
0
        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();
        }