Добавьте разделитель тысяч, чтобы удвоить в c # - PullRequest
2 голосов
/ 20 марта 2012

Я пытаюсь отформатировать двойное в строковый формат, содержащий тысячи разделителей и все конечные десятичные числа в немецком формате чисел. Но я не могу заставить его работать (я действительно такой глупый?).

Я хочу следующее:

Input: double doubleVal = 123456.789;
Output: 123.456,789

Я уже использовал NumberFormats и другие вещи, но я не получаю то, что хочу. Может кто-нибудь помочь, пожалуйста?

Ответы [ 4 ]

9 голосов
/ 20 марта 2012

Я ожидаю, что вы сможете сделать это с:

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 указывает количество цифр после десятичной точки.

3 голосов
/ 20 марта 2012

Используйте это:

string s = String.Format("{0:0,0.000}", 123456.789);
2 голосов
/ 20 марта 2012

Просто используйте строки нестандартного формата: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

1 голос
/ 20 марта 2012
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();
        }
    }
}
...