我在VB.net中有以下代码:
me.Index = Format(Convert.ToDouble(g.Trim()), "##.##")
结果:120.00
我在C#中如何做同样的事情。我不在C#中使用格式化功能。我只想要结果不会超过两个值后点。我的意思是如果我发送价值120.120000,那么结果将是12.12
答案 0 :(得分:3)
“我不在C#中使用格式化功能”并不清楚你的意思,但当然你可以使用string.Format
。但是,使用double.ToString
可能更简单:
Index = Convert.ToDouble(g.Trim()).ToString("0.##");
(我已将前导##
更改为0
,以确保始终为前导数字,因此您不会获得“.5”。显然,如果确实希望前导数字是可选的,请将其更改为"#.##"
。虽然我认为使用##
作为前缀没有任何好处。)
然而:
.
?double
。您确定不应该使用decimal
吗?答案 1 :(得分:0)
你可以这样做,
decimal.Round(yourValue, 2, MidpointRounding.AwayFromZero);
答案 2 :(得分:0)
你要么用这个
var value = 2.346;
var str = value.ToString("0.00");
或
decimal.Round(yourValue, 2, MidpointRounding.AwayFromZero);
//在msdn网站中将十进制值四舍五入到指定的精度。
或使用像这样的Round函数
decimal a = 1.994444M;
Math.Round(a, 2);