Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c的小数点后两位#_C#_Formatting - Fatal编程技术网

C# 使用c的小数点后两位#

C# 使用c的小数点后两位#,c#,formatting,C#,Formatting,我只需要得到两位小数,但是通过使用这个代码,我得到了1156.547。 告诉我必须使用哪种格式来显示两位小数。用于四舍五入到两位小数 decimal Debitvalue = 1156.547m; decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:0.00}", Debitvalue)); 如果要对小数进行四舍五入,请查看Math.round()以下是另一种方法 decimal DEBITAMT = Math.Round(1156.

我只需要得到两位小数,但是通过使用这个代码,我得到了1156.547。 告诉我必须使用哪种格式来显示两位小数。

用于四舍五入到两位小数

decimal Debitvalue = 1156.547m;

decimal DEBITAMT = Convert.ToDecimal(string.Format("{0:0.00}", Debitvalue));

如果要对小数进行四舍五入,请查看
Math.round()

以下是另一种方法

decimal DEBITAMT = Math.Round(1156.547m, 2);

您的问题是要求显示两位小数。使用以下String.format将有所帮助:

decimal decimalRounded = Decimal.Parse(Debitvalue.ToString("0.00"));
这将显示最多两位小数的数字(例如,2.10将显示为2.1)

如果希望始终显示两位小数,请使用“{0:.00}”(例如,2.10将显示为2.10)

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

String.Format("{0:.##}", Debitvalue)

另一种选择是使用我使用的

String.Format("{0:C}", Debitvalue)
另一种方式:

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

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

decimal.Round(decimalvalue, 2, MidpointRounding.AwayFromZero);

如果您希望始终显示两位小数(即使您的数字只有一位小数),最好的方法是使用

someValue.ToString("0.00", CultureInfo.InvariantCulture)

对于仅显示,
String
的属性可按如下方式使用

yournumber.ToString("0.00");
使用
System.Math.Round
。此值可以分配给其他人,也可以根据需要进行操作

double value = 123.456789;
String.Format("{0:0.00}", value);

如果有人正在寻找显示小数位数的方法,即使它以“.00”
结尾,也可以使用以下方法:

double value = 123.456789;
System.Math.Round(value, 2);
参考资料:


在这里的一些测试中,它的工作方式非常完美:

String.Format("{0:n1}", value)

希望这有助于显示两个十进制数字,请尝试给定的语法


string.Format(“{0:0.00}”,Debitvalue)

Math.Round可以工作,甚至您的代码也可以工作。我用您的代码进行了测试,它运行良好,decimal Debitvalue=Convert.ToDecimal(“1156.547”);decimal DEBITAMT=Convert.ToDecimal(string.Format(“{0:0.00}”,Debitvalue));控制台写入线(借记);事实上,如果他想显示2.10,第一个文件中的格式应该是“{0:.00}”。有了###它将是2.1。这一个实际上不起作用。它将从4.998取整为5,但OP希望有2个小数作为4.99。您也可以将这个
String.Format(“{0:C}”,Debitvalue)
as
$“{Debitvalue:C}”
为什么不转换为.ToDecimal(String.Format(“{0:F2}”,Debitvalue));,当我们已经在代码中使用convert.todecimal时。@Dragon-因为将一个数字转换为字符串并返回到一个数字是一种代码味道。噢,kk..然后我将使用类似的数学。round(convert.todecimal(val),2)…这会增加什么,比如说?
Decimal.Round(value, 2);