C# CultureInfo NumberFormat NumberDecimalSeparator 问题

发布于 2024-10-12 01:28:01 字数 422 浏览 8 评论 0原文

我想将应用程序的 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=> ” “

请问有什么帮助吗?

I want to change NumberDecimalSeparator of my application from "." to "/". it works when i show float numbers in my textbox. but integer types are not shown at all.

I modify thread's culture to get application-wide formatting. my code is like this:

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

result:

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

Any help please ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仙女山的月亮 2024-10-19 01:28:01

我只是创建了这样的测试控制台应用程序,但得到了这样的输出:

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

这里有一些不适用于您的问题吗?

I just create such testing console application but have got a output like this:

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

My code was:

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

Is here something not applicabale to your question?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文