首页 新闻 会员 周边

C# 保留两位小数,非四舍五入

0
[已解决问题] 解决于 2011-12-10 10:21

比如我现在有这个个数 1.11111 取两位小数的时候要 1.12  同意的 5.524 要算5.53

sixserve的主页 sixserve | 初学一级 | 园豆:21
提问于:2011-11-08 13:21
< >
分享
最佳答案
0

decimal.Round((decimal)1.11111, MidpointRounding.ToEven)

彭汉生 | 小虾三级 |园豆:1233 | 2011-11-08 13:41

这跟Banker's rounding有关系吗?

水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-08 14:06
其他回答(5)
1
double num1 = 1.11111;
double num2 = 5.524;
Console.WriteLine((num1+0.006).ToString("0.00")); //1.12
Console.WriteLine((num2 + 0.006).ToString("0.00")); //5.53
artwl | 园豆:16736 (专家六级) | 2011-11-08 13:46

1.119的时候就不对了。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-08 14:09

@水牛刀刀: 嗯,是的,改为加0.005应该是可以的

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2011-11-08 14:13

@天行健 自强不息: 恩,确实是个好方法。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-08 14:15
0
decimal num = 1.11111m;
decimal temp = Math.Truncate(num * 100);
if (temp < num * 100)
{
temp++;
}
decimal result = temp / 100;
水牛刀刀 | 园豆:6350 (大侠五级) | 2011-11-08 14:09
0

看意思是加1法?

顾晓北 | 园豆:10844 (专家六级) | 2011-11-08 17:37
0

乘100,取整,+1,再除100.

dail | 园豆:630 (小虾三级) | 2011-11-09 15:24
0

Math.Ceiling(a * 100)/100

碧落星痕 | 园豆:708 (小虾三级) | 2011-11-29 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册