Luk*_*Luk 35 c# formatting text-formatting
我试图在显示字符串时不使用','char作为千分隔符,而是使用空格代替.我想我需要定义一个自定义文化,但我似乎没有把它弄好.有什么指针吗?
例如:显示1000000为1 000 000而不是1,000,000
(不,String.Replace()
不是我想要使用的解决方案:P)
Jon*_*eet 70
我建议你找到一个NumberFormatInfo
最符合你想要的东西(即它与千分隔符分开),调用Clone()
它然后设置NumberGroupSeparator
属性.(如果您要使用货币格式格式化数字,则需要更改CurrencyGroupSeparator
/ 更改.)使用它作为您的调用string.Format
等的格式信息,您应该没问题.例如:
using System;
using System.Globalization;
class Test
{
static void Main()
{
NumberFormatInfo nfi = (NumberFormatInfo)
CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ";
Console.WriteLine(12345.ToString("n", nfi)); // 12 345.00
}
}
Run Code Online (Sandbox Code Playgroud)
有一个稍微简单的Jon Skeet版本:
using System;
using System.Globalization;
class Test
{
static void Main()
{
NumberFormatInfo nfi = new NumberFormatInfo {NumberGroupSeparator = " ", NumberDecimalDigits = 0};
Console.WriteLine(12345678.ToString("n", nfi)); // 12 345 678
}
}
Run Code Online (Sandbox Code Playgroud)
并且可以跳过'nfi'初始化并直接作为参数放入ToString()方法.
归档时间: |
|
查看次数: |
35879 次 |
最近记录: |