C#中Decimal類型截取保留N位小數(shù)并且不進(jì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ù),但是該方法會(huì)進(jìn)行四舍五入操作,而不是直接截取。所以,該方法不可取,在網(wǎng)上搜尋一番也沒有找到合適的方法,便自己實(shí)現(xiàn)了一個(gè)截取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);
}
}
}
三、測(cè)試代碼及結(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));
}
}
測(cè)試代碼中,不僅給出了本文實(shí)現(xiàn)方法的測(cè)試代碼,還給出了Decimal.Round()方法的測(cè)試代碼,最終的運(yùn)行效果如下圖所示。

圖1 運(yùn)行結(jié)果
大伙兒,能看出區(qū)別吧?
相關(guān)文章
c#利用Excel直接讀取數(shù)據(jù)到DataGridView
這個(gè)例子的功能是c#讀取excel文件,大家可以參考使用2013-11-11
常用.NET工具(包括.NET可再發(fā)行包2.0)下載
常用.NET工具(包括.NET可再發(fā)行包2.0)下載...2007-03-03
WinForm實(shí)現(xiàn)攔截窗體上各個(gè)部位的點(diǎn)擊特效實(shí)例
這篇文章主要介紹了WinForm實(shí)現(xiàn)攔截窗體上各個(gè)部位的點(diǎn)擊特效實(shí)例,對(duì)窗體上各個(gè)部位進(jìn)行定義,從而實(shí)現(xiàn)了點(diǎn)擊特效,需要的朋友可以參考下2014-09-09
C#編程實(shí)現(xiàn)動(dòng)態(tài)改變配置文件信息的方法
這篇文章主要介紹了C#編程實(shí)現(xiàn)動(dòng)態(tài)改變配置文件信息的方法,涉及C#針對(duì)xml格式文件的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
C#實(shí)現(xiàn)漢字轉(zhuǎn)區(qū)位碼的示例代碼
區(qū)位碼是一個(gè)4位的十進(jìn)制數(shù),每個(gè)區(qū)位碼都對(duì)應(yīng)著一個(gè)唯一的漢字,區(qū)位碼的前兩位叫做區(qū)碼,后兩位叫做位碼,下面我們就來看看如何使用C#實(shí)現(xiàn)漢字轉(zhuǎn)區(qū)位碼吧2024-01-01
Unity使用LineRender實(shí)現(xiàn)繪畫功能
這篇文章主要為大家詳細(xì)介紹了Unity使用LineRender實(shí)現(xiàn)繪畫功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07

