使用c#的两个小数位

Kir*_*ddy 58 c# formatting

decimal Debitvalue = 1156.547m;

decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:0.00}", Debitvalue));
Run Code Online (Sandbox Code Playgroud)

我必须得到两个小数位,但通过使用此代码我得到1156.547.让我知道我必须使用哪种格式来显示两位小数.

小智 55

你的问题是要求显示两位小数.使用以下String.format将有助于:

String.Format("{0:.##}", Debitvalue)
Run Code Online (Sandbox Code Playgroud)

这将显示只有两位小数的数字.

或者,如果要显示货币符号,请使用以下内容:

String.Format("{0:C}", Debitvalue)
Run Code Online (Sandbox Code Playgroud)

  • 实际上,第一个格式是"{0:.00}",如果他想要2.10显示.使用##,它将是2.1. (9认同)

Nik*_*wal 44

使用Math.Round()四舍五入至小数点后两位

decimal DEBITAMT = Math.Round(1156.547m, 2);
Run Code Online (Sandbox Code Playgroud)


cjk*_*cjk 35

如果要舍入小数,请查看 Math.Round()

  • 为什么不是这个Convert.ToDecimal(string.Format("{0:F2}",Debitvalue));,当我们在代码中已经使用convert.todecimal时. (5认同)
  • @Dragon - 因为将数字转换为字符串并返回到数字是代码味道. (4认同)
  • 哦,kk ..然后我将使用像这样的Math.round(Convert.todecimal(val),2).. (3认同)

kev*_*nhe 22

如果你想要总是显示两个小数位(即使你的数字只有一个小数位),最好的方法是使用

yournumber.ToString("0.00");
Run Code Online (Sandbox Code Playgroud)


Est*_*rez 21

我用

decimal Debitvalue = 1156.547m;
decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:F2}", Debitvalue));
Run Code Online (Sandbox Code Playgroud)


COL*_*OLD 16

这是另一种方法

decimal decimalRounded = Decimal.Parse(Debitvalue.ToString("0.00"));
Run Code Online (Sandbox Code Playgroud)


Md.*_*man 11

仅用于显示,属性String可以如下使用..

double value = 123.456789;
String.Format("{0:0.00}", value);
Run Code Online (Sandbox Code Playgroud)

System.Math.Round.此值可以分配给其他人或根据需要进行操作.

double value = 123.456789;
System.Math.Round(value, 2);
Run Code Online (Sandbox Code Playgroud)


小智 6

其它的办法 :

decimal.Round(decimalvalue, 2, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)


AH.*_*AH. 5

可能是其他示例的变体,但我使用此方法还确保小数点前显示点而不是逗号:

someValue.ToString("0.00", CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)