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

如题所述

第1个回答  2022-12-11

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



c#中怎样使decimal类型变量保留固定小数位?
在C#中,如果你需要一个decimal类型变量保留特定小数位数,可以使用Decimal.Round()函数或自定义方法。例如,假设你有decimal变量a和b,计算它们的乘积c后,可以这样操作:decimal a = 1.11;decimal b = 2.22;decimal c = a * b;decimal d = System.Decimal.Round(c, 2);这意味着将c的值四舍...

c#中怎样使decimal类型变量保留固定小数位?
例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 con...

c# decimal 保留一位小数 不四舍五入
提供两个方法,一种是用substring截取,根据“.”后一位截取 decimal dnum = 3.562m;string str = dnum.ToString().Substring(0, dnum.ToString().IndexOf('.')+2);方法二这样做 decimal dnum = 3.562m;string mNum = (Math.Truncate(dnum * 10) \/ 10.0m).ToString("0.0");...

c# decimal保留小数位数
decimal aa;aa = decimal.Parse(textBox1.Text);textBox1.Text= aa.ToString("0.00");或者 textBox1.Text= aa.ToString("f2");在文本框中输入100,执行代码后,变为100.00

C#里如何实现精确到两位小数?
在C#中,可以通过Decimal、Double或Float类型的变量结合ToString方法实现保留两位小数。以下是对该方法的 1. 使用Decimal类型:Decimal类型本身就是为了精确的小数计算而设计的。当你声明一个Decimal变量并为其赋值时,可以直接按照需要的格式进行字符串转换,并保留两位小数。例如:csharp Decimal number = 123...

c#怎么保留小数
double s = PI * r * r;Console.WriteLine("圆周长为:" + s.ToString("0.00"));"0.00"是格式化字符串,小数点后有几个0就是保留几位小数。参见MSDN的格式化字符串:http:\/\/msdn.microsoft.com\/zh-cn\/library\/427bttx3(v=vs.80)...

C#中double 数组里做除法怎么保留小数点后面的数据
在c#中除法默认不保留小数点,decimal result = 100 \/ 1000; \/\/ result = 0;需要保留小数点,可以如下 decimal result = 100m \/ 1000;m代表decimal.如果是变量要如何处理呢?这是需要用到Math.Round()int x= 120;int y= 100000;decimal result = (decimal)x \/ y; \/\/ (decimal)x\/ y ...

C# 中怎么保留有效数字
当然报错啦。你要先把字符串转换为decimal类型,再格式化 for (int i = 0; i < k ; i++){ str1[i] = decimal.Parse(arX[i].ToString()).ToString("0.000");}

C# decimal类型数据保留一位小数,且小数点后是0或5
decimal temp=100.2345M;if (temp % 1 != 0) temp = temp - temp % 1 + 0.5M; string result = temp.ToString("0.0");

C#中如何只保留小数点后面两位?
C#中如何只保留小数点后面两位方法:1、num.ToString("#0.00"); \/\/点后面几个0就保留几位 double num=0.121245;string result=num.ToString("#0.00"); \/\/点后面几个0就保留几位Console.WriteLine(result)。2、num.ToString("f2"); \/\/fN 保留N位,四舍五入,"F","f" 不区分...

相似回答
大家正在搜