C # CultureInfo NumberFormat NumberDecimalSeparator Проблема - PullRequest
1 голос
/ 14 января 2011

Я хочу изменить NumberDecimalSeparator моего приложения с "."в "/".это работает, когда я показываю числа с плавающей точкой в ​​моем текстовом поле.но целочисленные типы не отображаются вообще.

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

CultureInfo ci = new CultureInfo("fa-IR", true);
ci.NumberFormat.DigitSubstitution = DigitShapes.NativeNational;
ci.NumberFormat.NumberDecimalSeparator = "/";
Thread.CurrentThread.CurrentCulture = ci;

результат:

3.14 => "3/14" 100 => ""

Любая помощь, пожалуйста?

1 Ответ

2 голосов
/ 14 января 2011

Я только что создал такое консольное приложение для тестирования, но получил вывод, подобный следующему:

Input next value:
3.14
3/14
Input next value:
100
100

Мой код был:

using System;
using System.Globalization;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            CultureInfo ci = new CultureInfo("en-US", true);            
            Thread.CurrentThread.CurrentCulture = ci;
            Console.WriteLine("Input next value:");
            string input = Console.ReadLine();

            while (input != "e")
            {
                double dblInput = double.Parse(input);
                CultureInfo ci2 = new CultureInfo("fa-IR", true);
                ci2.NumberFormat.DigitSubstitution = DigitShapes.NativeNational;
                ci2.NumberFormat.NumberDecimalSeparator = "/";
                Thread.CurrentThread.CurrentCulture = ci2;

                Console.WriteLine(dblInput);
                Console.WriteLine("Input next value:");
                input = Console.ReadLine();
            }
        }
    }
}

Это что-то не применимо к вашему вопросу?

...