C# Math.Round()函数问题

简介: Math.Round   1、取指定位数的小数。 例如:  Math.Round(36.236,2)=36.24; Math.Round(36.232,2)=36.23 2、Math.Round ()在四舍五入时有个问题:  Math.Round(2.5,0) = 2; Math.Round(3.5,0) = 4;         2.5应该等于3才对! 

Math.Round  

1、取指定位数的小数。

例如: 

Math.Round(36.236,2)=36.24; 
Math.Round(36.232,2)=36.23

2、Math.Round ()在四舍五入时有个问题: 

Math.Round(2.5,0) = 2; 
Math.Round(3.5,0) = 4; 

        2.5应该等于3才对!       

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

        由来:

        对于0-9这10个数字来说,他们出现在某一位的几率是相等的。在金融结算中,如果单纯的使用四舍五入,那么,入参(5-9)会比舍参(0-4)多一个,也就是说,金融机构会亏本,考虑到这种情况,也为了舍入更加公平,出现了就近舍入。既然每一位出现0-9的几率相等,那么,该位是偶数还是奇数的几率也就相等,对于舍弃位,0-4舍,6-9进没有什么疑义,主要就在于对中间数5的处理。此时,决定5是否舍弃交由它的前一位决定,如果前一位是偶,则舍弃,如果前一位是奇,则进位,如此,就实现了大致公平的舍入处理。 

        按照银行家舍入,考虑11.5和-11.5, 对于11.5,5前边是奇数1,故进位,结果为12;对于-11.5,变成了-12。因此,该舍入应该叫做四舍六入五凑偶法


目录
相关文章
|
18天前
|
SQL 关系型数据库 MySQL
ROUND
ROUND
26 5
|
7月前
Math方法的使用
Math方法的使用
27 0
|
11月前
|
C++
C++ 多种取整函数的使用和区别: ceil() floor() round() trunc() rint() nearbyint()
C++ 多种取整函数的使用和区别: ceil() floor() round() trunc() rint() nearbyint()
140 0
Math.ceil()
Math.ceil()
96 0
Math.pow()
Math.pow()
52 0
4.2、Math数学对象(floor、random、sqrt、pow、abs)
4.2、Math数学对象(floor、random、sqrt、pow、abs)
128 0
|
人工智能
Next Round
Next Round
77 0
Next Round
|
安全 iOS开发
iOS开发-math.h/ceil/floor/round
https://blog.csdn.net/acmicpc123/article/details/50280097
113 0
iOS开发-math.h/ceil/floor/round
|
算法 机器学习/深度学习
Math
机器学习中的数学基础 微分学 求导数 求偏导数 以上两个通过公式或者使用泰勒公式进行逼近得到的 求f(x)在x0处的导数 根据泰勒公式: f(x) = f(x0) + f'(x0)(x - x0) + f''(x0)(x - x0)^2/2! + f'''(x0)(x - x0)^3/3! + .
895 0
Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。
1567 0