c#中怎样使decimal类型变量保留固定小数位?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中怎样使decimal类型变量保留固定小数位?相关的知识,希望对你有一定的参考价值。
参考技术Adecimal 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类型变量保留固定小数位?的主要内容,如果未能解决你的问题,请参考以下文章