java 四舍五入

来源:互联网 发布:淘宝怎么对接淘客 编辑:程序博客网 时间:2024/04/29 21:50

http://blog.tianya.cn/blogger/post_read.asp?BlogID=562576&PostID=24053356

http://wenku.baidu.com/view/3e6273e39b89680203d825fa.html


JAVA数值四舍五入:

 Math.ceil求最小的整数但不小于本身.   
  Math.round求本身的四舍五入。   
  Math.floor求最大的整数但不大于本身.   

ps:

  Math.Round(float,int);这时的结果是遇偶进遇奇舍,与网上说的相反,3.235=3.23,3.245=3.25;不知道是不是float的事,在MSDN没这个表达方式,只是在用的时候把一个float变量放进去后发现的。
  Math.Round(double,int);这时的结果五全进,就是四舍五入这与偶舍奇进也不一样,不知道具体问题在哪。
  
  
  以下是网上的通用说法:
  
   有不少人误将Math.Round函数当作四舍五入函数在处理, 结果往往不正确, 实际上Math.Round采用的是国际通行的是 Banker 舍入法.
   Banker's rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一算法的. 这个算法可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。”
   请看下面的例子:
  
   Math.Round(3.44, 1); //Returns 3.4. 四舍
  
   Math.Round(3.451, 1); //Returns 3.5 五后非零就进一
   Math.Round(3.45, 1); //Returns 3.4. 五后皆零看奇偶, 五前为偶应舍 去
  
   Math.Round(3.75, 1); //Returns 3.8 五后皆零看奇偶,五前为奇要进一
   Math.Round(3.46, 1); //Returns 3.5. 六入


原创粉丝点击