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就保留几位 

  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/dodui/p/1913889.html
Copyright © 2011-2022 走看看