我正在尝试将double格式化为包含数千个分隔符的字符串格式以及德语数字格式的所有尾随十进制数字。但我不能让它发挥作用(我真的那么愚蠢吗?)。
我想要的是以下内容:
Input: double doubleVal = 123456.789;
Output: 123.456,789
我已经使用了NumberFormats和其他东西,但我没有得到我想要的东西。有人可以帮忙吗?
答案 0 :(得分:9)
我希望你能够做到:
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指定小数点后的位数。
答案 1 :(得分:3)
使用此:
string s = String.Format("{0:0,0.000}", 123456.789);
答案 2 :(得分:2)
只需使用自定义格式字符串: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
答案 3 :(得分:1)
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();
}
}
}