如何格式化一个没有分隔符和小数位的十进制数?

6

如何将小数格式化为字符串,不带组分隔符和小数点?

例如:“1,234.56”应显示为“1234”。


5
你可以先将其转换为 int 类型吗? - Jon Skeet
让它显示为1235(即四舍五入)相对容易。但仅在格式字符串中截断是不太容易的。 - Jon Skeet
2个回答

10

这个基本可行,但是会向上取整:

Decimal d = 1234.56M;
string s = string.Format("{0:0}", d);
Console.WriteLine(s);

Outputs: 1235 正如@Jon Skeet所建议的那样,您可以将其转换为整数类型(假设它足够大以容纳您的最大十进制值):
Decimal d = 1234.56M;
string s = string.Format("{0}", (long)d);
Console.WriteLine(s);

输出:1234

演示:http://ideone.com/U4dcZD


或者如果 long 太小(不太可能,但是谁知道呢!)就转换为 BigInteger - joce

0

我不明白为什么你不能直接使用强制转换。我认为一个整数不会显示逗号(,)。但无论如何,这应该能解决问题:

        float n = 1234.78f;
        int i = (int)n;
        String str = i.ToString();
        while (str.IndexOf(",",0) >= 0 )
            str = str.Remove(str.IndexOf(",", 0), 1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接