zoukankan      html  css  js  c++  java
  • C# 四舍五入 (解决四舍六入五成双的问题)

    四舍六入五成双是一种精确度的计数保留法.舍入规律是"四舍六入五成双",这里"四"是小于五的意思,"六"是大于五的意思,"五"是舍入位之后的尾数逢五的话看前一位,奇进偶不进,就像1.25,因为2是偶数,所以是1.2。又像1.35,因为3是奇数,所以是1.4,明不明白,这个是数据统计需要的.

            从统计学的角度,"四舍六入五成双"比"四舍五入"要科学,它使舍入后的结果有的变大,有的变小,更平均.而不是像四舍五入那样逢五就入,导致结果偏向大数.
    例如: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,舍入后的结果更能反映实际结果
    例:

      四舍六入五成双:

     Math.Round(43.5,0) --44.0

     Math.Round(42.5,0) --42.0
    解决方法如下
     1.只要求保留N位不四舍5入
       float f = 0.55555f;           int i =(int)(f * 100);           f = (float)(i*1.0)/100;

     2.保留N位,四舍五入 
      decimal d= decimal.Round(decimal.Parse("0.55555"),2);
     
     3.保留N位四舍五入     **********************   
      double dbdata = 0.55555;           string str1 = bdata.ToString("F2");//fN 保留N位,四舍五入

     4.保留N位四舍五入  *******************      
      string result =String.Format("{0:N2}", 0.55555);//2位
      string result = String.Format("{0:N3}", 0.55555);//3位

     5.保留N位四舍五入   *****************
     double s=0.55555;        
      result=s.ToString("#0.00");//点后面几个0就保留几位 

  • 相关阅读:
    7.18学习日志
    7.16学习日志
    5 Things They Never Tell You About Making iPhone Apps
    MantisBT
    25款实用的桌面版博客编辑器
    【转】如何学会600多种编程语言
    开发者如何提升和推销自己
    CleanMyMac 1.10.8
    VMWARE FUSION 6 KEY
    cocos2dx shader
  • 原文地址:https://www.cnblogs.com/dodui/p/1913889.html
Copyright © 2011-2022 走看看