国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

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

2020-01-24 01:42:36
字體:
來源:轉載
供稿:網友

一、問題描述

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

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

二、詳細的實現代碼

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

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

圖1 運行結果

大伙兒,能看出區別吧?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂平市| 思南县| 太康县| 龙门县| 南康市| 布尔津县| 哈尔滨市| 松原市| 五台县| 图木舒克市| 广丰县| 虎林市| 安溪县| 南涧| 宜君县| 凤台县| 嘉黎县| 河南省| 通河县| 电白县| 乐都县| 云和县| 静海县| 嘉禾县| 马边| 黑龙江省| 南康市| 阿拉善盟| 宁海县| 灵丘县| 商南县| 威海市| 白玉县| 汉源县| 贡山| 铜梁县| 荥阳市| 务川| 莱阳市| 赤城县| 宜宾市|