C#CultureInfo NumberFormat NumberDecimalSeparator问题

时间:2011-01-14 15:43:57

标签: c# cultureinfo number-formatting

我想从“。”更改我的应用程序的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 个答案:

答案 0 :(得分: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();
            }
        }
    }
}

这里有什么不适合你的问题吗?