`
liqita
  • 浏览: 287856 次
  • 性别: 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()使用介绍

    本文为大家介绍下Javascript中的四舍五入Math.round()与Math.pow()的使用,感兴趣的朋友不要错过

    Math.Round四舍五入算法

    c#中Math.Round四舍五入算法:银行家舍入 四舍五入

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

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

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

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

    C# Math.Round()函数问题

    解释: Math.Round()准确的说,这个函数不是四舍五入,而是四舍六入五凑偶,就是说小于4或大于6的该舍该入是没有争议的,而5处在正中间,如果四舍五入则会造成数据的整体偏差,所以采取的原则是:如果舍入位为5,则...

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

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

    【Java】Math.random()

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

    JavaScript Math.round() 方法

    Math.round()方法将对参数进行四舍五入操作。 点击可参阅更多相关Math对象方法和属性。 语法结构: Math.round(x) 参数列表: 参数 描述 x 必需。必须是数值类型。 实例代码: 实例一: 复制代码 代码如下: ...

    Math.uuid.js

    Math.uuid.js js 生成 uuid

    math.min.js

    * math.js * https://github.com/josdejong/mathjs * * Math.js is an extensive math library for JavaScript and Node.js, * It features real and complex numbers, units, matrices, a large set of * ...

    C#四舍五入用法实例

    C# 中没有四舍五入函数,程序语言都没有四舍五入函数,因为四舍五入算法不科学,国际通行的是 Banker 舍入法 Bankers rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有...

    tommath.zip_tommath_tommath.h_tommath.pdf_国密

    用于大数计算,用于国密加密、RSA加密等

    java.math.BigDecimal 操作类

    java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等

    厦门博饼风俗,在线Flash博饼程序的核心代码

    randomNo1 = Math.round(Math.random() * 5) + 1; randomNo2 = Math.round(Math.random() * 5) + 1; randomNo3 = Math.round(Math.random() * 5) + 1; randomNo4 = Math.round(Math.random() * 5) + 1; randomNo5 = ...

    js Math.js bigNumber可以解决js运算精度丢失问题

    使用示例: math.config({ number:'BigNumber' }) let result=math.parser().eval(a+ "-" + b); //a,b是需要计算的值,中间是运算符

    基于WINCE 平台C#编程要点之一

    本文主要介绍在基于Windows CE 平台的英创嵌入式主板下进行C#(Microsoft Visual Stdio.Net 2005)应用程序开发时会常常用到的一些功能函数以及开发方法,这些方法适用 于英创采用WinCE 平台的所有型号嵌入式主板,...

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

    Math.ceil(): round a number up Arguments: Any numeric value or expression Returns: The closest integer greater than or equal to x. ———————————————————————————————– Math...

    Can't find a codec for class java.math.BigDecimal.txt

    解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal

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

    主要介绍了详解Java中Math.round()的取整规则,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Global site tag (gtag.js) - Google Analytics