`
liqita
  • 浏览: 291874 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Math.Round 四舍六入五成双 C#

    博客分类:
  • C#
阅读更多

环境VS2005,VS2003没有测试。

Math.Round (Decimal, Int32) 将小数值舍入到指定精度。
由 .NET Compact Framework 支持。
Math.Round (Double, Int32) 
将双精度浮点值舍入到指定精度。
由 .NET Compact Framework 支持。

msdn并没有详细的说明清楚,给了一个例子;
Math.Round(3.44, 1); //Returns 3.4.
Math.Round(3.45, 1); //Returns 3.4.
Math.Round(3.46, 1); //Returns 3.5.

依照他的例子得到的是"五舍六入",我改变了一下数字得到的结果将完全改变。

Math.Round(3.445, 1); //Returns 3.4.
Math.Round(3.455, 1); //Returns 3.5.
Math.Round(3.465, 1); //Returns 3.5.

Math.Round(3.450, 1); //Returns 3.4.(补0是无效的)

Math.Round(3.4452, 2); //Returns 3.45.
Math.Round(3.4552, 2); //Returns 3.46.
Math.Round(3.4652, 2); //Returns 3.47.

四舍六入五成双 

四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。 

对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,

 

也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,

"六"是指≥6时进上,

"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;

当5后无数或为0时,需要分两种情况来讲:

①5前为奇数,舍5入1;

②5前为偶数,舍5不进。  

 

具体规则如下:  

   1. 被修约的数字等于或小于4时,该数字舍去; 

 2. 被修约的数字等于或大于6时,则进位; 

 3. 被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。 

 

举例,用上述规则对下列数据保留3位有效数字: 

 9.8249=9.82, 9.82671=9.83 

 9.8350=9.84, 9.8351 =9.84  

   9.8250=9.82, 9.82501=9.83  

从统计学的角度,“四舍六入五成双”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“四舍六入五成双”使测量结果受到舍入误差的影响降到最低。  

 

例如:1.15+1.25+1.35+1.45=5.2,

若按四舍五入取一位小数计算:  

1.2+1.3+1.4+1.5=5.4  

按“四舍六入五成双”计算,

1.2+1.2+1.4+1.4=5.2,舍入后的结果更能反映实际结果。

 

分享到:
评论

相关推荐

    Javascript四舍五入Math.round()与Math.pow()使用介绍

    在实际使用时,Math.round()非常适用于需要对数字进行快速四舍五入处理的场景,比如数字格式化或者统计计算中对数值进行近似处理。值得注意的是,当输入参数为负数时,四舍五入的规则依然适用,例如: - Math.round...

    四舍六入五成双算法

    而`Math.Round()`方法,在不指定舍入模式的情况下,会使用四舍六入五成双算法。例如: ```csharp Decimal de1 = 0.115M; de1.ToString("f2"); // 结果为: 0.12 Math.Round(de1, 2); // 结果为:0.12 (5 前为奇数,...

    Math.Round()--c#与java的区别.pdf

    然而,C#的Math.Round()函数则采用了更为复杂的舍入策略,即所谓的“银行家舍入”或“四舍六入五看偶”。这一策略源于金融结算中对公平性的需求。在金融交易中,单纯的四舍五入可能会导致长期的误差积累,使得金融...

    JavaScript中用于四舍五入的Math.round()方法讲解

    此方法返回一个数四舍五入为最接近的整数的值。 语法 Math.round( x ) ; 下面是参数的详细信息: x: 一个数字 返回值: 返回数字四舍五入为最接近的整数的值。 例子: <html> <head> <title>...

    C#使用round函数四舍五入的方法

    在C#编程语言中,`Math.Round`方法用于执行四舍五入操作,但它并不是一个简单遵循传统四舍五入规则的函数。在大多数编程语言中,包括C#,`Math.Round`通常采用银行家舍入法则(Banker's Rounding),这是一种确保舍...

    c#将带有小数点的数值四舍五入为整数

    本文将详细探讨如何在C#中使用`Math.Round`函数进行四舍五入操作,并提供相关的代码示例和注意事项,以帮助开发者更好地理解和应用这一重要的数值处理技术。 ### C#中的`Math.Round`函数 `Math.Round`是C#中Math类...

    试验计算用四舍六入五判断算法C#实现

    标准的`Math.Round`方法虽然方便,但默认的舍入模式并不符合四舍六入五的规则。因此,我们需要自定义一个函数来实现这一策略。 首先,我们需要获取待舍入数字的小数部分,这可以通过减去整数部分来实现。然后,我们...

    详解Java中Math.round()的取整规则

    Math.round() 的取整规则是基于四舍五入的原理,即在参数上加 0.5 然后进行下取整。这种方法可以确保舍入结果尽可能接近原来的数字。 示例代码 以下是验证 Math.round() 的取整规则的示例代码: ```java int[] ...

    java 四舍五入 需要的朋友看看

    在Java编程语言中,四舍五入是一种常见的数学操作,用于处理浮点数或小数,使其更加符合实际应用需求。本文将详细解析如何在Java中实现四舍五入,并探讨不同方法的适用场景。 ### Java四舍五入的基础概念 四舍五入...

    C#编程实现四舍五入、向上及下取整的方法

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

    Java Math.round(),Math.ceil(),Math.floor()的区别详解

    `Math.round()` 方法执行四舍五入操作。它接受一个浮点数作为参数,然后根据小数点后的第一位进行决定。如果小数点后的第一位小于5,则舍去;如果大于或等于5,则向前一位进一。对于正数,当小数点后第一位等于5时,...

    math.random用法

    * Math.round():采用四舍五入方式取得最接近的整数。 * Math.ceil():向上取得一个最接近的整数。 * Math.floor():向下取得一个最接近的整数。 这些函数可以用来改变产生的数字,使其更好地适应不同的应用场景。 ...

    JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解

    在JavaScript编程语言中,Math对象提供了许多用于数学计算的函数,...通过记忆它们各自的特性——Math.ceil()向上取整,Math.floor()向下取整,以及Math.round()四舍五入取整,我们可以轻松地在编程实践中运用它们。

    【Java】Math.random()

    Math.Random()简介 Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。 for (int i = 0; i ...

    c#对计算结果进行四舍五入

    `Math.Round`是最常用的四舍五入方法,它可以接受一个或多个参数。基本用法如下: ```csharp double value = 3.14159; int roundedValue = (int)Math.Round(value); // 四舍五入到整数,结果为3 ``` 如果你...

    C# Math.Round()函数问题

    `Math.Round(2.5, 0)` 结果为2,是因为根据“五凑偶”原则,2.5在四舍五入后被舍成了2,因为2是偶数。同样地,`Math.Round(3.5, 0)` 结果为4,因为3.5被进位成了4,这样4也是偶数。这种行为遵循了银行家舍入法...

    JavaScript Math.round() 方法

    JavaScript中的`Math.round()`方法是用于执行四舍五入操作的核心数学函数,它接收一个数值作为参数,并返回该数值四舍五入后的整数。这个方法对于处理浮点数时进行简单精确的数字调整非常有用,尤其是在需要进行货币...

Global site tag (gtag.js) - Google Analytics