最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#四舍五入用法實例

 更新時間:2018年02月10日 11:27:52   作者:jjt  
這篇文章主要為大家詳細介紹了C#四舍五入用法實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

C# 中沒有四舍五入函數(shù),程序語言都沒有四舍五入函數(shù),因為四舍五入算法不科學,國際通行的是 Banker 舍入法

Bankers rounding(銀行家舍入)算法,即四舍六入五取偶。事實上這也是 IEEE 規(guī)定的舍入標準。因此所有符合 IEEE 標準的語言都應(yīng)該是采用這一算法的。

Math.Round 方法默認的也是 Banker 舍入法

在 .NET 2.0 中 Math.Round 方法有幾個重載方法

Math.Round(Decimal, MidpointRounding)
Math.Round(Double, MidpointRounding)
Math.Round(Decimal, Int32, MidpointRounding)
Math.Round(Double, Int32, MidpointRounding)

將小數(shù)值舍入到指定精度。MidpointRounding 參數(shù),指定當一個值正好處于另兩個數(shù)中間時如何舍入這個值

該參數(shù)是個 MidpointRounding 枚舉

此枚舉有兩個成員,MSDN 中的說明是:
AwayFromZero 當一個數(shù)字是其他兩個數(shù)字的中間值時,會將其舍入為兩個值中絕對值較小的值。
ToEven 當一個數(shù)字是其他兩個數(shù)字的中間值時,會將其舍入為最接近的偶數(shù)。

注 意!這里關(guān)于 MidpointRounding.AwayFromZero 的說明是錯誤的!實際舍入為兩個值中絕對值較大的值。不過 MSDN 中的 例子是正確的,英文描述原文是 it is rounded toward the nearest number that is away from zero.

所以,要實現(xiàn)四舍五入函數(shù),對于正數(shù),可以加一個 MidpointRounding.AwayFromZero 參數(shù)指定當一個數(shù)字是其他兩個數(shù)字的中間值時其舍入為兩個值中絕對值較大的值,例:

Math.Round(3.45, 2, MidpointRounding.AwayFromZero)

不過對于負數(shù)上面的方法就又不對了

因此需要自己寫個函數(shù)來處理

第一個函數(shù):

double Round(double value, int decimals)
{
  if (value < 0)
  {
    return Math.Round(value + 5 / Math.Pow(10, decimals + 1), decimals, MidpointRounding.AwayFromZero);
  }
  else
  {
    return Math.Round(value, decimals, MidpointRounding.AwayFromZero);
  }
}

第二個函數(shù):

double Round(double d, int i)
{
  if(d >=0)
  {
    d += 5 * Math.Pow(10, -(i + 1));
  }
  else
  {
    d += -5 * Math.Pow(10, -(i + 1));
  }
  string str = d.ToString();
  string[] strs = str.Split('.');
  int idot = str.IndexOf('.');
  string prestr = strs[0];
  string poststr = strs[1];
  if(poststr.Length > i)
  {
    poststr = str.Substring(idot + 1, i);
  }
  string strd = prestr + "." + poststr;
  d = Double.Parse(strd);
  return d;
}

參數(shù):d表示要四舍五入的數(shù);i表示要保留的小數(shù)點后為數(shù)。

其中第二種方法是正負數(shù)都四舍五入,第一種方法是正數(shù)四舍五入,負數(shù)是五舍六入。

備注:個人認為第一種方法適合處理貨幣計算,而第二種方法適合數(shù)據(jù)統(tǒng)計的顯示。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#計算矩陣的秩實例分析

    C#計算矩陣的秩實例分析

    這篇文章主要介紹了C#計算矩陣的秩實現(xiàn)方法,以實例形式較為詳細的分析了C#計算矩陣秩的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#無限欄目分級程序代碼分享 好東西

    C#無限欄目分級程序代碼分享 好東西

    C#無限欄目分級程序代碼分享 好東西...
    2006-12-12
  • c#顯示當前在線人數(shù)示例

    c#顯示當前在線人數(shù)示例

    這篇文章主要介紹了c#顯示當前在線人數(shù)的示例,需要的朋友可以參考下
    2014-02-02
  • c++換行符知識點總結(jié)

    c++換行符知識點總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于c++換行符知識點總結(jié),需要的朋友們可以參考學習下。
    2020-03-03
  • Unity自定義編輯器界面(Inspector界面)

    Unity自定義編輯器界面(Inspector界面)

    這篇文章主要為大家詳細介紹了Unity自定義編輯器界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • C# Unicode編碼解碼的實現(xiàn)

    C# Unicode編碼解碼的實現(xiàn)

    本文主要介紹了C# Unicode編碼解碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • c#對xml增刪改查操作示例

    c#對xml增刪改查操作示例

    本文主要介紹c#對xml增刪改查操作的示例,大家參考使用吧
    2014-01-01
  • C#?Winform實現(xiàn)復制文件顯示進度

    C#?Winform實現(xiàn)復制文件顯示進度

    這篇文章主要介紹了C#?Winform實現(xiàn)復制文件顯示進度,用進度條來顯示復制情況,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C#實現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法

    C#實現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法

    這篇文章主要介紹了C#實現(xiàn)將商品金額小寫轉(zhuǎn)換成大寫的方法,涉及C#數(shù)組與字符串的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-08-08
  • C#?RichTextBox制作文本編輯器

    C#?RichTextBox制作文本編輯器

    這篇文章主要為大家詳細介紹了C#?RichTextBox制作文本編輯器的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論

巴彦县| 正阳县| 介休市| 丰都县| 固阳县| 枣阳市| 阿坝县| 宁津县| 南宫市| 高阳县| 东光县| 克拉玛依市| 城市| 梨树县| 长阳| 广平县| 临潭县| 枣阳市| 宁蒗| 福贡县| 三亚市| 宿迁市| 增城市| 饶河县| 东兰县| 连州市| 元朗区| 长宁县| 房产| 福鼎市| 田阳县| 潜山县| 集贤县| 区。| 柏乡县| 独山县| 福安市| 太谷县| 石景山区| 三明市| 随州市|