2011-01-14 2 views
1

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

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

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

результат:

3,14 => "3/14" 100 => ""

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

ответ

2

Я просто создать такое приложение тестирования консоли, но есть выход, как это:

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(); 
      } 
     } 
    } 
} 

ли здесь что-то не applicabale на ваш вопрос?