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

C#中Decimal類型截取保留N位小數(shù)并且不進(jìn)行四舍五入操作

 更新時間:2015年06月17日 09:59:53   投稿:junjie  
這篇文章主要介紹了C#中Decimal類型截取保留N位小數(shù)并且不進(jìn)行四舍五入操作,本文給出需求說明和實(shí)現(xiàn)代碼,需要的朋友可以參考下

一、問題描述

開發(fā)中,需要使Decimal類型數(shù)據(jù)保留小數(shù)點(diǎn)后的兩位小數(shù)且不需要進(jìn)行四舍五入操作,即直接截取小數(shù)點(diǎn)后面的兩位小數(shù)即可。例如:1.245M --> 1.24,而不是1.25

使用Decimal.Round()方法可以實(shí)現(xiàn)保留Decimal類型數(shù)據(jù)小數(shù)點(diǎn)后的若干位小數(shù),但是該方法會進(jìn)行四舍五入操作,而不是直接截取。所以,該方法不可取,在網(wǎng)上搜尋一番也沒有找到合適的方法,便自己實(shí)現(xiàn)了一個截取Decimal類型數(shù)據(jù)小數(shù)點(diǎn)后若干位的方法。

二、詳細(xì)的實(shí)現(xiàn)代碼

using System;
namespace CutDecimal
{
  public static class DecimalHelper
  {
    public static decimal CutDecimalWithN(decimal d, int n)
    {
      string strDecimal = d.ToString();
      int index = strDecimal.IndexOf(".");
      if (index == -1 || strDecimal.Length < index + n + 1)
      {
        strDecimal = string.Format("{0:F" + n + "}", d);
      }
      else
      {
        int length = index;
        if(n != 0)
        {
          length = index + n + 1;
        }
        strDecimal = strDecimal.Substring(0, length);
      }
      return Decimal.Parse(strDecimal);
    }
  }
}

三、測試代碼及結(jié)果

static void Main(string[] args)
{
  decimal d = 1.23456789M;
  for (int i = 0; i <= 10; i++)
  {
    Console.WriteLine("{0}", DecimalHelper.CutDecimalWithN(d, i));
  }
  for (int i = 0; i <= 10; i++)
  {
    Console.WriteLine("{0}", Decimal.Round(d, i));
  }
}

測試代碼中,不僅給出了本文實(shí)現(xiàn)方法的測試代碼,還給出了Decimal.Round()方法的測試代碼,最終的運(yùn)行效果如下圖所示。

圖1 運(yùn)行結(jié)果

大伙兒,能看出區(qū)別吧?

相關(guān)文章

最新評論

辽宁省| 新竹县| 班戈县| 宁化县| 卓资县| 四川省| 寿阳县| 芜湖县| 库车县| 同江市| 枝江市| 新兴县| 荔波县| 龙游县| 马鞍山市| 梅河口市| 乌什县| 航空| 鄂伦春自治旗| 惠安县| 乌拉特后旗| 嘉义市| 桂平市| 吴川市| 无棣县| 遂川县| 通榆县| 滨州市| 黄骅市| 巍山| 张家港市| 信丰县| 松潘县| 太仓市| 拉孜县| 遂宁市| 新泰市| 陇川县| 和林格尔县| 阿勒泰市| 浙江省|