zoukankan      html  css  js  c++  java
  • Math.Round(double,int)採用的是四舍六入五考慮的方法

    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.

    答:
    世界上的许多国家已广泛采用“四舍六入法”。我国国家科委于1955年就作了推荐。“四舍 六入法”可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一。”
    答:
    在工程技术、金融和科学领域,我们往往认为将一个小数圆整到距离它最近的偶数(而并非总是将它向上圆整)更加精确,即我们在此所说的“四舍六入”法。
    Math.Round()方法使用的银行家算法的依据,是IEEE Standard 754这个国际标准

    据说欧洲银行全采用这个模式
    这个都不知道,四舍六入五成双,Round都是这样处理的。
    我也遇到过这个问题,起初也很奇怪,后来看了帮助,果然是四舍六入五靠偶,虽然楼上的所说的四舍六入是国际标准,但是中国的很多业务系统还是采取的是四舍五入的方法,没办法,我只好自己写了个方法来四舍五入了。不过网上有一个不错的方法,虽然有取巧嫌疑,但是一般没什么问题,就是在后面加上0.0000000001,很小的一个数,这时再来取两位,三位或四位就基本没问题了。可以试试

  • 相关阅读:
    jQuery
    写日志文件
    游标
    jdk与jre的区别
    八段锦练习口诀及作用
    语音网关FXO与FXS的工作原理 FXO与FXS区别
    office 2007安装后右键单击新建没有快捷方式问题解决方法
    什么是STUN?
    【引】[翻译]Irrlicht引擎里的冲突检测与响应
    [原创]IrrLicht中MS3D模型骨骼动画支持bug的排除
  • 原文地址:https://www.cnblogs.com/anchenjie007/p/1018093.html
Copyright © 2011-2022 走看看