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

C#中Decimal類型截取保留N位小數并且不進行四舍五入操作

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

一、問題描述

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

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

二、詳細的實現(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);
    }
  }
}

三、測試代碼及結果

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));
  }
}

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

圖1 運行結果

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

相關文章

最新評論

兴山县| 博白县| 天门市| 满洲里市| 唐海县| 新宁县| 凉城县| 邵东县| 明星| 蒙阴县| 宜兴市| 威远县| 翁源县| 勐海县| 浦城县| 白水县| 启东市| 富锦市| 象山县| 青冈县| 武乡县| 土默特右旗| 靖江市| 宁南县| 临澧县| 嵊泗县| 三门峡市| 天镇县| 灵武市| 连云港市| 乐平市| 西丰县| 沙河市| 岐山县| 和田市| 沙坪坝区| 澳门| 上思县| 湖南省| 临猗县| 剑阁县|