1

可能重复:
在 C# 中使用自定义千位分隔符

我想要一个字符串格式来格式化我的数字,如下所示:

Input: 1000 Ouput: 1 000.00
Input: 10000 Output: 10 000.00 
Input: 100000 Output: 100 000.00
4

5 回答 5

4

完全按照您的要求工作,无需额外的格式化

String.Format("{0:# ###.00}", 40000);
output - "40 000.00"
String.Format("{0:# ###.00}", 400000);
output - "400 000.00"
String.Format("{0:# ###.00}", 4000);
output - "4 000.00"

检查有关此的博客文章:格式化数字以显示

于 2012-11-02T12:58:31.737 回答
1

这将起作用

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

结果:

"  10 000.00"

您将需要修剪结果以删除多余的空格

于 2012-11-02T13:01:17.543 回答
1

你可以使用NumberFormatInfo类来做到这一点。查看示例代码。

NumberFormatInfo numberFormatInfo = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();          
numberFormatInfo.NumberGroupSeparator = " ";

int a = 1000;

Console.WriteLine(a.ToString("n", numberFormatInfo)); // 1 000.00
于 2012-11-02T13:07:57.350 回答
0

来吧朋友:

var formatInfo = new NumberFormatInfo();
formatInfo.CurrencyGroupSeparator = " ";
formatInfo.CurrencySymbol = string.Empty;

Console.WriteLine(1000.ToString("C", formatInfo));
Console.WriteLine(10000.ToString("C", formatInfo));
Console.WriteLine(100000.ToString("C", formatInfo));
于 2012-11-02T13:15:38.420 回答
-1

提供输入是您可以使用的整数。

input.ToString("F");

编辑:我的错,没有看到格式中的空格,以为它只是用于十进制值

另一种可能不是最好的快速方法是将其转换为货币字符串并删除前面的货币符号并将“,”替换为“。”

例如

input.ToString( "C" );
input.Replace( "," , "." );
input.Remove( 0, 1 ); //or the amount of characters in currency symbol if more than one
于 2012-11-02T12:59:19.477 回答