我在下面的 VB.net 中有代码:
me.Index = Format(Convert.ToDouble(g.Trim()), "##.##")
结果:120.00
我如何在 C# 中做同样的事情。我不在 C# 中使用格式函数。我只希望结果不会在点之后放置超过两个值。我的意思是如果我发送值 120.120000 那么结果将是 12.12
目前尚不清楚“我不在 C# 中使用格式函数”是什么意思,但您当然可以使用string.Format
. 但是,使用double.ToString
可能会更简单:
Index = Convert.ToDouble(g.Trim()).ToString("0.##");
(我已更改前导##
以0
确保始终有前导数字,因此您不会得到例如“.5”。显然,如果您真的希望前导数字是可选的,请将其更改为"#.##"
. 我不看到使用##
作为前缀的好处。)
然而:
.
?double
。你确定你不应该使用decimal
吗?你可以这样做,
decimal.Round(yourValue, 2, MidpointRounding.AwayFromZero);
要么你用这个
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);