c#中怎样使decimal类型变量保留固定小数位?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中怎样使decimal类型变量保留固定小数位?相关的知识,希望对你有一定的参考价值。

参考技术A

decimal a=1.11; 

decimal b=2.22; 

decimal c=a*b; 

decimal d = System.Decimal.Round(c, 2);

c Decimal 对象;

2是精确到小数位数。

Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。

例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。

当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。

provider.PercentDecimalDigits = 2;//小数点保留几位数.

provider.PercentPositivePattern = 2;//百分号出现在何处.

double result = (double)1 / 3;//一定要用double类型.

Response.Write(result.ToString("P", provider));

扩展资料

c#中使decimal类型变量保留固定小数位的测试代码及结果:

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#中decimal数据类型以截断的方式保留指定的小数位数

/// <summary> 

/// 将小数值按指定的小数位数截断 

/// </summary> 

///
<param name="d">要截断的小数</param> 

/// <param
name="s">小数位数,s大于等于0,小于等于28</param> 

///
<returns></returns> 

public static decimal ToFixed(decimal d, int
s) 

 

decimal sp = Convert.ToDecimal(Math.Pow(10, s));

if (d <
0) 

return Math.Truncate(d) + Math.Ceiling((d - Math.Truncate(d)) * sp) / sp;   

else 

return Math.Truncate(d) + Math.Floor((d - Math.Truncate(d)) * sp) /
sp; 


参考资料来源:百度百科 - Decimal



decimal类型数据如何保留两位小数

日常开发中,decimal作为货币类型,经常会处理保留两位小数的问题。

本站整理两种,decimal类型保留两位小数的方法。

第一种:

decimal d = 46.28111m;
string res=d.ToString(“#0.00”);

//结果=46.28

 

第二种:

double d=45.123456;
string res=double.Parse(String.Format(“{0:N}”, d)).ToString();

//结果=45.12

转载请注明:三只源码 » decimal类型数据如何保留两位小数

以上是关于c#中怎样使decimal类型变量保留固定小数位?的主要内容,如果未能解决你的问题,请参考以下文章

vb.net 怎样使计算结果只保留四位小数?

C#中的decimal怎么保留两位小数

C# decimal保留指定的小数位数,不四舍五入

c# decimal 保留一位小数 不四舍五入

c#如何把这句保留2位小数

C#中decimal.Parse(t70OnlinePrice.Value)保留两位小数