聊一聊c#中的MATH.ROUND方法

摘要:
微软对MATH.ROUND方法的官方解释是将值舍入到最接近的整数或指定的小数位数。此方法具有以下8个重载:///<摘要>///将十进制值舍入为最接近的整数值///</摘要>///&书信电报;paramname=“d”>要舍入的小数</param>///&书信电报;回报>最接近参数d的整数。如果d的小数部分正好位于两个整数的中间

MATH.ROUND方法微软的官方解释是:将值舍入到最接近的整数或指定的小数位数。

该方法有如下8个重载:

        /// <summary>
        /// 将小数值舍入到最接近的整数值。
        /// </summary>
        /// <param name="d">要舍入的小数。</param>
        /// <returns>最接近参数 d 的整数。如果 d 的小数部分正好处于两个整数中间,其中一个整数为偶数,另一个整数为奇数,则返回偶数。请注意,此方法返回 System.Decimal,而不是整数类型。</returns>
        decimal Round(decimal d);
        /// <summary>
        /// 将双精度浮点值舍入为最接近的整数值。
        /// </summary>
        /// <param name="a">要舍入的双精度浮点数。</param>
        /// <returns>最接近 a 的整数。如果 a 的小数部分正好处于两个整数中间,其中一个整数为偶数,另一个整数为奇数,则返回偶数。请注意,此方法返回 System.Double,而不是整数类型。</returns>
        double Round(double a);
        /// <summary>
        ///  将小数值舍入到最接近的整数。一个参数,指定当一个值正好处于两个数中间时如何舍入这个值。
        /// </summary>
        /// <param name="d">要舍入的小数。</param>
        /// <param name="mode">在两个数字之间时如何舍入 d 的规范。</param>
        /// <returns>最接近 d 的整数。如果 d 是两个数字的中值,这两个数字一个为偶数,另一个为奇数,则 mode 确定返回两个数字中的哪一个。</returns>
        decimal Round(decimal d, MidpointRounding mode);
        /// <summary>
        /// 将小数值按指定的小数位数舍入。
        /// </summary>
        /// <param name="d">要舍入的小数。</param>
        /// <param name="decimals">返回值中的小数位数。</param>
        /// <returns>最接近 d 的 decimals 位小数的数字。</returns>
        decimal Round(decimal d, int decimals);
        /// <summary>
        /// 将双精度浮点值舍入为最接近的整数。一个参数,指定当一个值正好处于两个数中间时如何舍入这个值。
        /// </summary>
        /// <param name="value">要舍入的双精度浮点数。</param>
        /// <param name="mode">在两个数字之间时如何舍入 value 的规范。</param>
        /// <returns>最接近 value 的整数。如果 value 是两个整数的中值,这两个整数一个为偶数,另一个为奇数,则 mode 确定返回两个整数中的哪一个。</returns>
        double Round(double value, MidpointRounding mode);
        /// <summary>
        /// 将双精度浮点值按指定的小数位数舍入。
        /// </summary>
        /// <param name="value">要舍入的双精度浮点数。</param>
        /// <param name="digits">返回值中的小数数字。</param>
        /// <returns></returns>
        double Round(double value, int digits);
        /// <summary>
        /// 将双精度浮点值按指定的小数位数舍入。一个参数,指定当一个值正好处于两个数中间时如何舍入这个值。
        /// </summary>
        /// <param name="value">要舍入的双精度浮点数。</param>
        /// <param name="digits">返回值中的小数数字。</param>
        /// <param name="mode">在两个数字之间时如何舍入 value 的规范。</param>
        /// <returns>最接近 value 的 digits 位小数的数字。如果 value 比 digits 少部分数字,value 原样返回。</returns>
        double Round(double value, int digits, MidpointRounding mode);
        /// <summary>
        /// 将小数值按指定的小数位数舍入。一个参数,指定当一个值正好处于两个数中间时如何舍入这个值。
        /// </summary>
        /// <param name="d">要舍入的小数。</param>
        /// <param name="decimals">返回值中的小数位数。</param>
        /// <param name="mode">在两个数字之间时如何舍入 d 的规范。</param>
        /// <returns>最接近 d 的 decimals 位小数的数字。如果 d 比 decimals 少部分数字,d 原样返回。</returns>
        decimal Round(decimal d, int decimals, MidpointRounding mode);

其中参数MidpointRounding是个枚举,对应的值为:

聊一聊c#中的MATH.ROUND方法第1张

 现将各个重载方法一一实现如下:

1、得到整数

  1.1、double Round(double a)输出结果为:

  聊一聊c#中的MATH.ROUND方法第2张

   1.2、decimal Round(decimal d)输出结果为:

  聊一聊c#中的MATH.ROUND方法第3张

   1.3、decimal Round(decimal d, int decimals)输出结果为:

  聊一聊c#中的MATH.ROUND方法第4张

   1.4、double Round(double value, int digits)输出结果为:

  聊一聊c#中的MATH.ROUND方法第5张

   1.5、decimal Round(decimal d, MidpointRounding mode)输出结果为:

  聊一聊c#中的MATH.ROUND方法第6张

   1.6、double Round(double value, MidpointRounding mode)输出结果:

  聊一聊c#中的MATH.ROUND方法第7张

   1.7、double Round(double value, int digits, MidpointRounding mode)输出结果:

  聊一聊c#中的MATH.ROUND方法第8张

   1.8、decimal Round(decimal d, int decimals, MidpointRounding mode)输出结果:

  聊一聊c#中的MATH.ROUND方法第9张

 2、得到两位小数

  2.1、decimal Round(decimal d, int decimals)输出结果:

  聊一聊c#中的MATH.ROUND方法第10张

   2.2、double Round(double value, int digits)输出结果:

  聊一聊c#中的MATH.ROUND方法第11张

   2.3、double Round(double value, int digits, MidpointRounding mode)输出结果:

  聊一聊c#中的MATH.ROUND方法第12张

   2.4、decimal Round(decimal d, int decimals, MidpointRounding mode)输出结果:

  聊一聊c#中的MATH.ROUND方法第13张

 根据以上运行结果,我们在使用Round处理数据时,不能随便使用,要根据自己的具体需求来选择对应的方法,特别是我们对数据进行四舍五入时,要选对适合自己项目需要的方法是很重要的。如果随意使用,可能得到意想不到的结果。

  可运行控制台代码:

聊一聊c#中的MATH.ROUND方法第14张聊一聊c#中的MATH.ROUND方法第15张
#region 整数
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*********************************整数输出*********************************");
            Console.ForegroundColor = ConsoleColor.Red;
            //double Round(double a);
            Console.WriteLine($"Math.Round(0.4)输出结果:{Math.Round(0.4)}");
            Console.WriteLine($"Math.Round(0.5)输出结果:{Math.Round(0.5)}");
            Console.WriteLine($"Math.Round(0.501)输出结果:{Math.Round(0.501)}");
            Console.WriteLine($"Math.Round(0.6)输出结果:{Math.Round(0.6)}");
            Console.WriteLine($"Math.Round(1.5)输出结果:{Math.Round(1.5)}");
            Console.WriteLine($"Math.Round(2.5)输出结果:{Math.Round(2.5)}");
            Console.WriteLine($"Math.Round(3.5)输出结果:{Math.Round(3.5)}");
            Console.WriteLine($"Math.Round(4.5)输出结果:{Math.Round(4.5)}");
            Console.WriteLine($"Math.Round(5.5)输出结果:{Math.Round(5.5)}");
            Console.WriteLine($"Math.Round(6.5)输出结果:{Math.Round(6.5)}");
            Console.WriteLine($"Math.Round(7.5)输出结果:{Math.Round(7.5)}");
            Console.WriteLine($"Math.Round(8.5)输出结果:{Math.Round(8.5)}");
            Console.WriteLine($"Math.Round(9.5)输出结果:{Math.Round(9.5)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("***************Math.Round(double)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            //decimal Round(decimal d);
            Console.WriteLine($"Math.Round((decimal)0.4)输出结果:{Math.Round((decimal)0.4)}");
            Console.WriteLine($"Math.Round((decimal)0.5)输出结果:{Math.Round((decimal)0.5)}");
            Console.WriteLine($"Math.Round((decimal)0.501)输出结果:{Math.Round((decimal)0.501)}");
            Console.WriteLine($"Math.Round((decimal)0.6)输出结果:{Math.Round((decimal)0.6)}");
            Console.WriteLine($"Math.Round((decimal)1.5)输出结果:{Math.Round((decimal)1.5)}");
            Console.WriteLine($"Math.Round((decimal)2.5)输出结果:{Math.Round((decimal)2.5)}");
            Console.WriteLine($"Math.Round((decimal)3.5)输出结果:{Math.Round((decimal)3.5)}");
            Console.WriteLine($"Math.Round((decimal)4.5)输出结果:{Math.Round((decimal)4.5)}");
            Console.WriteLine($"Math.Round((decimal)5.5)输出结果:{Math.Round((decimal)5.5)}");
            Console.WriteLine($"Math.Round((decimal)6.5)输出结果:{Math.Round((decimal)6.5)}");
            Console.WriteLine($"Math.Round((decimal)7.5)输出结果:{Math.Round((decimal)7.5)}");
            Console.WriteLine($"Math.Round((decimal)8.5)输出结果:{Math.Round((decimal)8.5)}");
            Console.WriteLine($"Math.Round((decimal)9.5)输出结果:{Math.Round((decimal)9.5)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("**************Math.Round(decimal)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;

            //decimal Round(decimal d, int decimals);
            Console.WriteLine($"Math.Round((decimal)0.4,0)输出结果:{Math.Round((decimal)0.4, 0)}");
            Console.WriteLine($"Math.Round((decimal)0.5, 0)输出结果:{Math.Round((decimal)0.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)0.501, 0)输出结果:{Math.Round((decimal)0.501, 0)}");
            Console.WriteLine($"Math.Round((decimal)0.6, 0)输出结果:{Math.Round((decimal)0.6, 0)}");
            Console.WriteLine($"Math.Round((decimal)1.5, 0)输出结果:{Math.Round((decimal)1.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)2.5, 0)输出结果:{Math.Round((decimal)2.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)3.5, 0)输出结果:{Math.Round((decimal)3.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)4.5, 0)输出结果:{Math.Round((decimal)4.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)5.5, 0)输出结果:{Math.Round((decimal)5.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)6.5, 0)输出结果:{Math.Round((decimal)6.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)7.5, 0)输出结果:{Math.Round((decimal)7.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)8.5, 0)输出结果:{Math.Round((decimal)8.5, 0)}");
            Console.WriteLine($"Math.Round((decimal)9.5, 0)输出结果:{Math.Round((decimal)9.5, 0)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("**************Math.Round(decimal,int)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            //double Round(double value, int digits);
            Console.WriteLine($"Math.Round(0.4,0)输出结果:{Math.Round(0.4, 0)}");
            Console.WriteLine($"Math.Round(0.5, 0)输出结果:{Math.Round(0.5, 0)}");
            Console.WriteLine($"Math.Round(0.501, 0)输出结果:{Math.Round(0.501, 0)}");
            Console.WriteLine($"Math.Round(0.6, 0)输出结果:{Math.Round(0.6, 0)}");
            Console.WriteLine($"Math.Round(1.5, 0)输出结果:{Math.Round(1.5, 0)}");
            Console.WriteLine($"Math.Round(2.5, 0)输出结果:{Math.Round(2.5, 0)}");
            Console.WriteLine($"Math.Round(3.5, 0)输出结果:{Math.Round(3.5, 0)}");
            Console.WriteLine($"Math.Round(4.5, 0)输出结果:{Math.Round(4.5, 0)}");
            Console.WriteLine($"Math.Round(5.5, 0)输出结果:{Math.Round(5.5, 0)}");
            Console.WriteLine($"Math.Round(6.5, 0)输出结果:{Math.Round(6.5, 0)}");
            Console.WriteLine($"Math.Round(7.5, 0)输出结果:{Math.Round(7.5, 0)}");
            Console.WriteLine($"Math.Round(8.5, 0)输出结果:{Math.Round(8.5, 0)}");
            Console.WriteLine($"Math.Round(9.5, 0)输出结果:{Math.Round(9.5, 0)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("**************Math.Round(double,int)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;

            //decimal Round(decimal d, MidpointRounding mode);
            Console.WriteLine($"Math.Round((decimal)0.4, MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.4, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.501,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.501, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.6,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.6, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)1.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)1.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)2.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)2.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)3.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)3.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)4.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)4.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)5.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)5.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)6.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)6.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)7.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)7.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)8.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)8.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)9.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)9.5, MidpointRounding.AwayFromZero)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(decimal,MidpointRounding.AwayFromZero)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Math.Round((decimal)0.4, MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.4, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.501,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.501, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.6,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.6, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)1.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)1.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)2.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)2.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)3.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)3.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)4.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)4.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)5.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)5.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)6.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)6.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)7.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)7.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)8.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)8.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)9.5,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)9.5, MidpointRounding.ToEven)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(decimal,MidpointRounding.ToEven)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;


            //double Round(double value, MidpointRounding mode);
            Console.WriteLine($"Math.Round(0.4, MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.4, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.501,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.501, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.6,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.6, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(1.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(1.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(2.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(2.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(3.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(3.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(4.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(4.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(5.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(5.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(6.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(6.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(7.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(7.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(8.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(8.5, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(9.5,MidpointRounding.AwayFromZero)输出结果:{Math.Round(9.5, MidpointRounding.AwayFromZero)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(double,MidpointRounding.AwayFromZero)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Math.Round(0.4, MidpointRounding.ToEven)输出结果:{Math.Round(0.4, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.5,MidpointRounding.ToEven)输出结果:{Math.Round(0.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.501,MidpointRounding.ToEven)输出结果:{Math.Round(0.501, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.6,MidpointRounding.ToEven)输出结果:{Math.Round(0.6, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(1.5,MidpointRounding.ToEven)输出结果:{Math.Round(1.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(2.5,MidpointRounding.ToEven)输出结果:{Math.Round(2.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(3.5,MidpointRounding.ToEven)输出结果:{Math.Round(3.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(4.5,MidpointRounding.ToEven)输出结果:{Math.Round(4.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(5.5,MidpointRounding.ToEven)输出结果:{Math.Round(5.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(6.5,MidpointRounding.ToEven)输出结果:{Math.Round(6.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(7.5,MidpointRounding.ToEven)输出结果:{Math.Round(7.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(8.5,MidpointRounding.ToEven)输出结果:{Math.Round(8.5, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(9.5,MidpointRounding.ToEven)输出结果:{Math.Round(9.5, MidpointRounding.ToEven)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(double,MidpointRounding.ToEven)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;

            //double Round(double value, int digits, MidpointRounding mode);
            Console.WriteLine($"Math.Round(0.4,0, MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.4, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.501,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.501, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.6,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.6, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(1.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(1.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(2.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(2.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(3.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(3.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(4.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(4.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(5.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(5.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(6.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(6.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(7.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(7.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(8.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(8.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(9.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round(9.5, 0, MidpointRounding.AwayFromZero)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(double,int,MidpointRounding.AwayFromZero)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Math.Round(0.4,0, MidpointRounding.ToEven)输出结果:{Math.Round(0.4, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(0.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.501,0,MidpointRounding.ToEven)输出结果:{Math.Round(0.501, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.6,0,MidpointRounding.ToEven)输出结果:{Math.Round(0.6, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(1.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(1.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(2.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(2.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(3.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(3.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(4.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(4.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(5.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(5.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(6.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(6.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(7.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(7.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(8.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(8.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(9.5,0,MidpointRounding.ToEven)输出结果:{Math.Round(9.5, 0, MidpointRounding.ToEven)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(double,int,MidpointRounding.ToEven)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;

            //decimal Round(decimal d, int decimals, MidpointRounding mode);
            Console.WriteLine($"Math.Round((decimal)0.4,0, MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.4, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.501,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.501, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.6,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.6, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)1.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)1.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)2.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)2.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)3.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)3.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)4.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)4.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)5.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)5.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)6.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)6.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)7.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)7.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)8.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)8.5, 0, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)9.5,0,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)9.5, 0, MidpointRounding.AwayFromZero)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(decimal,int,MidpointRounding.AwayFromZero)*END***************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Math.Round((decimal)0.4,0, MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.4, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.501,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.501, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.6,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.6, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)1.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)1.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)2.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)2.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)3.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)3.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)4.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)4.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)5.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)5.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)6.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)6.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)7.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)7.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)8.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)8.5, 0, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)9.5,0,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)9.5, 0, MidpointRounding.ToEven)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(decimal,int,MidpointRounding.ToEven)*END*********************");


            #endregion

            #region 两位小数
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*********************************两位小数*********************************");
            Console.ForegroundColor = ConsoleColor.Red;
            //decimal Round(decimal d, int decimals);
            Console.WriteLine($"Math.Round((decimal)0.464,2)输出结果:{Math.Round((decimal)0.464, 2)}");
            Console.WriteLine($"Math.Round((decimal)0.465, 2)输出结果:{Math.Round((decimal)0.465, 2)}");
            Console.WriteLine($"Math.Round((decimal)0.46501, 2)输出结果:{Math.Round((decimal)0.46501, 2)}");
            Console.WriteLine($"Math.Round((decimal)0.466, 2)输出结果:{Math.Round((decimal)0.466, 2)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("**************Math.Round(decimal,int)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            //double Round(double value, int digits);
            Console.WriteLine($"Math.Round(0.464,2)输出结果:{Math.Round(0.464, 2)}");
            Console.WriteLine($"Math.Round(0.465, 2)输出结果:{Math.Round(0.465, 2)}");
            Console.WriteLine($"Math.Round(0.46501, 2)输出结果:{Math.Round(0.46501, 2)}");
            Console.WriteLine($"Math.Round(0.466, 2)输出结果:{Math.Round(0.466, 2)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("**************Math.Round(double,int)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;

            //double Round(double value, int digits, MidpointRounding mode);
            Console.WriteLine($"Math.Round(0.464,2, MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.464, 2, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.465,2,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.465, 2, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.46501,2,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.46501, 2, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round(0.466,2,MidpointRounding.AwayFromZero)输出结果:{Math.Round(0.466, 2, MidpointRounding.AwayFromZero)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(double,int,MidpointRounding.AwayFromZero)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Math.Round(0.464,2, MidpointRounding.ToEven)输出结果:{Math.Round(0.464, 2, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.465,2,MidpointRounding.ToEven)输出结果:{Math.Round(0.465, 2, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.46501,2,MidpointRounding.ToEven)输出结果:{Math.Round(0.46501, 2, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round(0.466,2,MidpointRounding.ToEven)输出结果:{Math.Round(0.466, 2, MidpointRounding.ToEven)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(double,int,MidpointRounding.ToEven)*END*********************");
            Console.ForegroundColor = ConsoleColor.Red;

            //decimal Round(decimal d, int decimals, MidpointRounding mode);
            Console.WriteLine($"Math.Round((decimal)0.464,2, MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.464, 2, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.465,2,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.465, 2, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.46501,2,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.46501, 2, MidpointRounding.AwayFromZero)}");
            Console.WriteLine($"Math.Round((decimal)0.466,2,MidpointRounding.AwayFromZero)输出结果:{Math.Round((decimal)0.466, 2, MidpointRounding.AwayFromZero)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(decimal,int,MidpointRounding.AwayFromZero)*END***************");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine($"Math.Round((decimal)0.464,2, MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.464, 2, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.465,2,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.465, 2, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.46501,2,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.46501, 2, MidpointRounding.ToEven)}");
            Console.WriteLine($"Math.Round((decimal)0.466,2,MidpointRounding.ToEven)输出结果:{Math.Round((decimal)0.466, 2, MidpointRounding.ToEven)}");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("*****Math.Round(decimal,int,MidpointRounding.ToEven)*END*********************");
            #endregion
            
            Console.ReadKey();
View Code

参考:https://docs.microsoft.com/zh-cn/dotnet/api/system.math.round?redirectedfrom=MSDN&view=netframework-4.7.2

 

免责声明:文章转载自《聊一聊c#中的MATH.ROUND方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇服务消费者巧用CSS属性visibility与opacity代替鼠标经过的jQuery事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Pascal精要笔记

Pascal精要笔记 Pascal语言的大小写不敏感特性有一个例外:控件包中的Register 过程必须以大写字母R开始,因为需要与C++Builder 兼容。 ,编译器不编译代码中的空格、空行和Tab键空格,这些元素通称为空白,它们只用来提高代码的可读性,不影响编译过程。(也就是说: = 这样的写法没有问题,我原来还以为由问题那!) 记住要用代码模板(方便...

CSS3 border-image详解、应用

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持border-image。所以,就本文而言,IE浏览器可以回家休息了,Firefox3及其以下以及Opera浏览器也可以休息去看...

C# 四舍五入算法(转)

在处理一些数据时,我们希望能用"四舍五入"法实现,但是C#采用的是"四舍六入五成双"的方法,如下面的例子,就是用"四舍六入五成双"得到的结果: doubled1=Math.Round(1.25,1);//1.2doubled2=Math.Round(1.24,1);//1.2doubled3=Math.Round(1.26,1);//1.3doubl...

Canvas干货总结

一、canvas简介 ​<canvas> 是 html5 新增的,一个可以使用脚本(通常为 javascript) 在其中绘制图像的 html 元素。它可以用来制作照片集或者制作简单的动画,甚至可以进行实时视频处理和渲染。 ​它最初由苹果内部使用自己 macos x webkit 推出,供应用程序使用像仪表盘的构件和 safari 浏览器使用。...

Jquery Math ceil()、floor()、round()比较与用法

Math.ceil():向上取值 如:Math.ceil(2.1) -- 结果为 3 Math.ceil(-2.1) -- 结果为-2 结论:正入 负舍 Math.floor(): 先下取值 入: Math.ceil(2.1) -- 结果为 2 Math.ceil(-2.1) -- 结果为-3 结论:和ceil()结论相反。 正舍 负入 Math.roun...

SQL中的数字格式化 (收藏)

用sql语句来格式化double型的数据,比如,只取出小数点后面的两位一。主要方法--取小数位前数字,不考虑四舍五入select left('30000.72234', charindex('.', '30000.72234')-1)其中:charindex('.', '30000.72234')获得小数点的位置;-1则表示在小数点前面的全部,如果想获取小...