同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁(yè) 優(yōu)化推廣 .Net中Math.Round與四舍五入

.Net中Math.Round與四舍五入

來(lái)源: | 時(shí)間:2013/4/27 9:30:27 |

 有不少人誤將Math.Round函數(shù)當(dāng)作四舍五入函數(shù)在處理, 結(jié)果往往不正確, 實(shí)際上Math.Round采用的是國(guó)際通行的是 Banker 舍入法.

      Banker's rounding(銀行家舍入)算法,即四舍六入五取偶。事實(shí)上這也是 IEEE 規(guī)定的舍入標(biāo)準(zhǔn)。因此所有符合 IEEE 標(biāo)準(zhǔn)的語(yǔ)言都應(yīng)該是采用這一算法的. 這個(gè)算法可以概括為:“四舍六入五考慮,五后非零就進(jìn)一,五后皆零看奇偶,五前為偶應(yīng)舍 去,五前為奇要進(jìn)一。”
    請(qǐng)看下面的例子:

   Math.Round(3.44, 1); //Returns 3.4.  四舍

   Math.Round(3.451, 1); //Returns 3.5  五后非零就進(jìn)一
   Math.Round(3.45, 1); //Returns 3.4. 五后皆零看奇偶, 五前為偶應(yīng)舍 去

   Math.Round(3.75, 1);  //Returns 3.8  五后皆零看奇偶,五前為奇要進(jìn)一
   Math.Round(3.46, 1); //Returns 3.5. 六入

 

  如果要實(shí)現(xiàn)我們傳統(tǒng)的四舍五入的功能,一種比較簡(jiǎn)單,投機(jī)的方法就是在數(shù)的后面加上0.0000000001,很小的一個(gè)數(shù).因?yàn)?quot;五后非零就進(jìn)一", 所以可以保證5一定進(jìn)一.

  當(dāng)然也可以自己寫(xiě)函數(shù), 下面給出一段代碼:

public static decimal UNIT = 0.0.1m

static public  decimal  Round(decimal d)

{

    return Round(d,UNIT)

}

 

static public decimal Round(decimal d,decimal unit)

{

   decimal rm = d % unit;

   decimal result = d-rm;

   if( rm >= unit /2)

  {

      result += unit;

  } 

  return result ;

}

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)