gpt4 book ai didi

c# - 在 C# 中解析来自不同文化的数字

转载 作者:太空狗 更新时间:2023-10-30 00:55:58 25 4
gpt4 key购买 nike

我正在编写一些代码来将字符串解析为 double 值,但该字符串是从另一台机器传递给我的。自然会出现文化不同的问题。因此,虽然机器 A 可能会发送给我:

"0.5"

机器B可能会发送给我

"0,6"

因为它在德国并且有不同的文化。

正确解析这两个输入的最佳方法是什么?有人建议使用 CultureInfo.InvariantCulture 作为 Convert.ToDouble 的参数,但这不仅有助于 生成上述字符串,不是当别人可以给我发送不同的吗?

我是否认为我需要了解源文化并更改 Thread.CurrentThread.CurrentCulture 以在尝试转换之前匹配?

最佳答案

如果您知道源文化,并且可以获得代表它的 CultureInfo 实例,您可以将其传递给 Convert.ToDoubleDouble.Parse 方法作为参数。例如,如果您从一个(已知的)德国用户那里得到这个:

var cultureInfo = CultureInfo.GetCultureInfo("de-DE");
double result = Double.Parse("0,5", cultureInfo);

如果您不确定,但源文化的范围有限,那么您可以对各种文化使用多次 Double.TryParse 尝试。然而,正如下面所指出的,“1,000”可能具有完全不同的含义,这取决于文化......

关于c# - 在 C# 中解析来自不同文化的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8909263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com