本地化整数值

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

我们有一个 WPF 桌面应用程序,我需要重构它以支持非英国文化。显然,十进制值可能会导致问题,例如,不同地区的小数点字符可能不同(英国为“.”,法国为“,”)。

我不太清楚的是对整数值的影响。例如,我们可能有连接整数值以生成“ID”的代码,例如

var id = $"A{MemberNo}".

如果

MemberNo
的值为12345,那么我希望结果字符串为“A12345”。

将文化引入混合中,我担心某些文化可能会导致添加“数千”个分隔符,例如“A12,345”(尽管经过一些测试,我还没有找到一种确实会发生这种情况的文化)。所以我的问题是:按原样保留将整数转换为字符串的代码是否安全,或者我应该指定(例如)InvariantCulture?

c# localization globalization cultureinfo
1个回答
0
投票

因此,如果您需要将输入从字符串转换为数字(如果您已经实现了非数字输入的预防),您可以使用

的重载

Convert.ToInt32(字符串,IFormatProvider) 或者 Convert.ToDecimal(String, IFormatProvider)

所以在代码中它看起来像这样:

int value_1 = Convert.ToInt32(Console.ReadLine(), System.Globalization.CultureInfo.CurrentCulture);
double value_2 = Convert.ToDouble(Console.ReadLine(), System.Globalization.CultureInfo.CurrentCulture);

System.Globalization 将提供有关用户文化的信息,Convert 的方法将适应环境

这应该可以解决你的问题。

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