C# 使用C语言,每三位数字加一个逗号#

C# 使用C语言,每三位数字加一个逗号#,c#,C#,我想用c#每隔3位给十进制数字加上逗号。 我写了这段代码: double a = 0; a = 1.5; Interaction.MsgBox(string.Format("{0:#,###0}", a)); 但它返回2。 我哪里错了? 请描述如何修复它?以下是如何修复: double a = 1.5; Interaction.MsgBox(string.Format("{0:#,###0.#}", a)); string.Format("{0:0,0.0}", a) 它做得对##0

我想用c#每隔3位给十进制数字加上逗号。
我写了这段代码:

double a = 0; 
a = 1.5;
Interaction.MsgBox(string.Format("{0:#,###0}", a));
但它返回2。
我哪里错了?
请描述如何修复它?

以下是如何修复:

 double a = 1.5;
Interaction.MsgBox(string.Format("{0:#,###0.#}", a));
 string.Format("{0:0,0.0}", a)

它做得对##0表示使用COMA写入至少一位数字、零位小数和空格数字组。因此它将1.5取整为2,因为它不能写小数。试试#,##0.00。您将获得1.50,请尝试以下格式:

string.Format("{0:#,0.0}", a)

你试过这个吗:-

string.Format("{0:0,000.0}", 1.5);
有一个可以分隔千个单位的名称:
N

float value = 1234.512;

value.ToString("N"); // 1,234.512
String.Format("N2", value); // 1,234.51

是的,谢谢,请您描述一下string.Format的第一个参数好吗?在您的格式字符串中,您没有对数字的小数部分进行寻址,所以它将其四舍五入为2。因此,格式字符串中的。#解决了这个问题,如果总是希望显示小数部分,比如2.0,那么在格式字符串中使用.0。我有一个问题:答案中的格式是否与
#,0不同。#
?重复@raj:这里的答案不同。@GregC,但不一定更好。^)它可以工作,但对于数字10,它返回10.0,我应该用零替换10.0,还是可以改进string.Format函数?@shaahin,double的字符串格式在中有很好的解释。就10.0而言,如果不希望小数点为0,则可以使用
{0:#,#.#}