国产探花免费观看_亚洲丰满少妇自慰呻吟_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 運行結果

大伙兒,能看出區別吧?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青川县| 茌平县| 通河县| 丹棱县| 郸城县| 西乌| 砚山县| 龙门县| 清水县| 泰来县| 锦州市| 台东县| 巫山县| 清新县| 唐河县| 防城港市| 灵璧县| 玉环县| 连江县| 泰兴市| 普宁市| 商南县| 罗源县| 谷城县| 井研县| 富锦市| 昌图县| 栾城县| 武强县| 阿拉善右旗| 高青县| 镶黄旗| 武清区| 绥宁县| 光泽县| 临潭县| 新营市| 砚山县| 松潘县| 胶州市| 鸡西市|