我想要将一个double格式化为包含千位分隔符和所有尾数的德国数字格式的字符串。但是我无法让它工作(我真的这么愚蠢吗?)。
我想要的是以下内容:
Input: double doubleVal = 123456.789;
Output: 123.456,789
我已经使用了NumberFormats和其他东西,但是我没有得到我想要的。有人可以帮忙吗?
我认为你应该能够使用以下代码实现:
string text = value.ToString("N");
...如果不是线程当前的区域设置,可以指定德国文化。
示例:
using System;
using System.Globalization;
class Test
{
static void Main()
{
double d = 123456.789;
CultureInfo culture = CultureInfo.CreateSpecificCulture("de-DE");
Console.WriteLine(d.ToString("N3", culture)); // 123.456,789
}
}
请注意,其中的数字3指定了小数点后面的位数。
string s = String.Format("{0:0,0.000}", 123456.789);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double d = 123456.789;
CultureInfo ci = new CultureInfo("de-DE");
Console.WriteLine(d.ToString("N",ci));
Console.ReadLine();
}
}
}