将逗号分隔符添加到数字,asp.net

时间:2010-11-30 10:29:36

标签: asp.net

我正在尝试将逗号分隔符添加到数字中。我在这里尝试过这样的建议: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)'的最佳重载方法匹配”有一些无效的参数“(或变化取决于我正在使用的数字类型。)任何想法?

5 个答案:

答案 0 :(得分:1)

嗯,你发送的是一个字符串。看起来你想要货币回来

  1. 如果是数字值,为什么要将字符串传递给方法?
  2. String.Format将返回一个字符串,因此不再需要.ToString()它。
  3. {0:c} =货币格式如果您不希望$然后使用{0:n}
  4. 如果您将其作为字符串传递给(十进制)现金,则不确定是否必须进行显式转换
  5. 返回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