2017联通卡有几种套餐:c#中怎样使decimal类型变量保留固定小数位?

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 11:32:09
decimal a=1.11;
decimal b=2.22;
decimal c=a*b;
这样,c就有4个小数位,怎样使变量c四舍五入保留两个小数位?

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 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 进行转换。

扩展资料

关于decimal位数

p (有效位数)

可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。

s (小数位数)

小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数而不同。

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 进行转换。

扩展资料:

关于decimal位数

p (有效位数)

可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是 1 至最大有效位数 38 之间的值。预设有效位数是 18。

s (小数位数)

小数点右侧所能储存的最大十进位数。小数位数必须是从 0 到 p 的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此,0 <= s <= p。最大储存体大小会随著有效位数而不同。

参考资料:百度百科-Decimal

decimal a=1.11;
decimal b=2.22;
decimal c=a*b;

decimal d = System.Decimal.Round(c, 2);
c Decimal 对象
2是精确到小数位位数....

System.Decimal.Round(c, 2);并不是四舍五入