我的小数值为“2.2”,我需要的是“2.20”。
我试过了
String.Format("0:0.00",decimalVar);
和
decimal.Round(decimalVar,2,MidpointRounding.AwayFromZero)
和
Math.Round(decimalVar,2)
但他们都返回原来的“2.2”值。这个问题有很多答案,但它们都是关于“如果它们超过两个,如何将数字限制为两个”。
当只有一个数字时,我需要显示两位数字。
答案 0 :(得分:3)
这是一个简单的拼写错误,你的第一行应该是:
String.Format("{0:0.00}", decimalVar)
注意大括号。或者,您可以使用
decimalVar.ToString("0.00")
为什么舍入不能解决您的问题:
数学上,2.2
与2.20
完全相同,因此Round
不会改变任何内容。这里重要的 事情是你如何将数学值格式化为十进制字符串。因此,String.Format
和ToString(someFormatString)
是正确的选择。
答案 1 :(得分:2)
答案 2 :(得分:1)
您可以使用ToString
decimalVar.ToString("0.00")
或String.Format
string.Format("{0:0.00}",decimalVar));
答案 3 :(得分:1)
如果您希望字符串表示中的小数点后2位数,只需格式化(在您的情况下为F2
):
Decimal value = 2.2M;
String result = value.ToString("F2"); // 2.20
您可能会觉得有用的其他格式:
0.00
0.#0
#.#0
请注意,数学表示2.2 == 2.20
Round()
没有出路的原因。
答案 4 :(得分:0)
使用下面的代码快照
DecimalFormat format = new DecimalFormat("0.00");
format.format(decimal);