当它只有一个时,如何获得两位小数

时间:2015-02-20 06:39:15

标签: c# .net

我的小数值为“2.2”,我需要的是“2.20”。

我试过了

String.Format("0:0.00",decimalVar);

decimal.Round(decimalVar,2,MidpointRounding.AwayFromZero)

Math.Round(decimalVar,2)

但他们都返回原来的“2.2”值。这个问题有很多答案,但它们都是关于“如果它们超过两个,如何将数字限制为两个”。

当只有一个数字时,我需要显示两位数字。

5 个答案:

答案 0 :(得分:3)

这是一个简单的拼写错误,你的第一行应该是:

String.Format("{0:0.00}", decimalVar)

注意大括号。或者,您可以使用

decimalVar.ToString("0.00")

为什么舍入不能解决您的问题:

数学上,2.22.20完全相同,因此Round不会改变任何内容。这里重要的 事情是你如何将数学值格式化为十进制字符串。因此,String.FormatToString(someFormatString)是正确的选择。

答案 1 :(得分:2)

变化:

String.Format("0:0.00",decimalVar);

为:

String.Format("{0:0.00}",decimalVar);

你的例子working fiddle

答案 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);