如何在Windows窗体应用程序中显示古吉拉特语本地数字?

问题描述 投票:4回答:1

我想用Gujarati开发Windows form application c#.net。但我有问题

1)计算古吉拉特语中的两个数字。我解决了这个代码

public static double ParseValue(string value)
{
    return double.Parse(string.Join("",
        value.Select(c => "+-.".Contains(c)
           ? "" + c: "" + char.GetNumericValue(c)).ToArray()),
        NumberFormatInfo.InvariantInfo);
}

但是这个代码提供了英文数值。

但是当计算两个Guajarati no时,我得到英文输出。像这样:

 Label1.Text = (ParseValue(TextBox1.Text) + ParseValue(TextBox2.Text)).ToString();

//Output is Like this
// ૩ + ૬ = 9

那我如何得到古吉拉特语数字输出

2)Microsoft Access中Gujarati Value的数据类型是什么?对于Numeric,DateTime ETC ..

c# .net winforms localization
1个回答
6
投票

您可以使用NumberFormatCultureInfo属性来查找有关文化数字格式的信息,包括:

然后,您可以使用此信息将您的号码转换为本机格式。

例如:

public string GetNativeRepresentation(double value)
{
    var format = CultureInfo.GetCultureInfo("gu-IN").NumberFormat;
    return String.Join("", value.ToString(CultureInfo.InvariantCulture)
                 .Select(x =>
                 {
                     if ("1234567890".Contains(x.ToString()))
                         return format.NativeDigits[x - '0'];
                     else if (x == '-')
                         return format.NegativeSign;
                     else if (x == '.')
                         return format.NumberDecimalSeparator;
                     else
                         return x.ToString();
                 }));
}

例如:

MessageBox.Show(GetNativeRepresentation(-1234567890.123));

显示:

-૧૨૩૪૫૬૭૮૯૦.૧૨૩

最好存储独立于文化的每种类型,例如,使用标准语言类型,如intdoubleDateTime,然后在使用.Net Framework本地化机制的应用程序中,显示值的本地化版本。

© www.soinside.com 2019 - 2024. All rights reserved.