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

decimala=1.11;decimalb=2.22;decimalc=a*b;这样,c就有4个小数位,怎样使变量c四舍五入保留两个小数位?... decimal a=1.11;
decimal b=2.22;
decimal c=a*b;
这样,c就有4个小数位,怎样使变量c四舍五入保留两个小数位?
展开
 我来答
小舅舅有点帅
2019-01-23 · TA获得超过1万个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

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



IEIOA
2018-12-06 · TA获得超过2.2万个赞
知道答主
回答量:16
采纳率:100%
帮助的人:5728
展开全部

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汤圆好甜cP
2018-12-23 · TA获得超过1.7万个赞
知道答主
回答量:13
采纳率:6%
帮助的人:4908
展开全部

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。最大储存体大小会随著有效位数而不同。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gstripe
2006-07-13 · TA获得超过254个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:0
展开全部
decimal a=1.11;
decimal b=2.22;
decimal c=a*b;

decimal d = System.Decimal.Round(c, 2);
c Decimal 对象
2是精确到小数位位数....
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一只笨没
2020-05-19 · TA获得超过1414个赞
知道小有建树答主
回答量:385
采纳率:75%
帮助的人:44.5万
展开全部
最简单明了就是输出时候decimal.toString("0.00");

要显示百分比的话decimal.toString("0.00%");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式