我正在尝试将逗号分隔符添加到数字中。我在这里尝试过这样的建议:add commas using String.Format for number and和这里:.NET String.Format() to add commas in thousands place for a number但我无法让它工作 - 他们只是返回没有逗号的数字。我正在使用的代码在这里:
public static string addCommas(string cash) {
return string.Format("{0:n0}", cash).ToString();
}
我哪里错了?
感谢。
更新:大家好,感谢您的帮助,但所有这些方法都返回相同的错误:“错误CS1502:'BishopFlemingFunctions.addCommas(int)'的最佳重载方法匹配”有一些无效的参数“(或变化取决于我正在使用的数字类型。)任何想法?
答案 0 :(得分:1)
嗯,你发送的是一个字符串。看起来你想要货币回来
返回String.Format(“{0:c}”,(十进制)现金);
或
返回String.Format(“{0:n}”,(十进制)现金);
但我认为它应该是这样的:
public static string addCommas(decimal cash)
{
return String.Format("{0:c}", cash);
}
但这是一个如此简单的陈述我没有看到将其作为方法的逻辑,如果你的方法是一行,在大多数情况下,它不是一个方法。
答案 1 :(得分:1)
为了应用数字格式,你必须将cash
作为数字类型传递(int,double,float等)
答案 2 :(得分:0)
请注意,cash参数的类型为double
,而.##
位于格式化字符串末尾的分数。
修改强>
以下是完整的代码:
static class Program {
static void Main() {
double d = 123456789.7845;
string s = addCommas(d);
System.Console.WriteLine(s);
}
public static string addCommas(double cash) {
return string.Format("${0:#,###0.##}", cash);
}
}
这会向控制台打印“$ 123,456,789.78”。如果你正在
错误CS1502:最好的重载 方法匹配'addCommas(double)' 有一些无效的论点
检查以确保您正确调用该函数并确实传递了正确的数据类型。我鼓励你复制/粘贴我上面的代码并运行它 - BY ITSELF。
答案 3 :(得分:0)
我在自定义类上有一个方法来转换任何数字
public static string ConvertToThosandSepratedNumber(object number)
{
string retValue = "";
retValue = string.Format("{0:N0}", Convert.ToDecimal(number));
return retValue;
}
答案 4 :(得分:0)
这是为数千个地方添加逗号的一种相当有效的方法,等等。 它是用VB.net编写的。 它不适用于负数。
Public Function AddCommas(number As Integer) As String
Dim s As String = number.ToString()
Dim sb As New StringBuilder(16)
Dim countHead As Integer = s.Length Mod 3
If countHead = 0 Then countHead = 3
sb.Append(s.Substring(0, countHead))
For I As Integer = countHead To s.Length - 1 Step 3
sb.Append(","c)
sb.Append(s.Substring(I, 3))
Next
Return sb.ToString()
End Function