gpt4 book ai didi

c# - 验证当前文化中的双数

转载 作者:行者123 更新时间:2023-11-30 21:57:08 25 4
gpt4 key购买 nike

有一种方法可以在当前文化中验证双数吗?我试过这个:

var number ="10,10";
double value = double.Parse(number,
NumberStyles.Float,
CultureInfo.CurrentCulture);

如果我尝试使用“es-ES”(其中小数点分隔符是“,”),那么解析工作完美,我得到了一个双 10.10,但如果我尝试使用“en-US” "(其中小数点分隔符为“.”)解析无法理解小数点,因此将其省略,因此我得到了一个 1010 错误数字。

当我尝试为指定的文化转换错误的数字时,有什么方法可以让我得到异常?

编辑:“,”我不是指千位分隔符,我指的是某些文化(如 es-ES)的小数点分隔符

最佳答案

在我的机器上,如预期的那样,以下抛出一个 FormatException:

var number ="10,10";
double value = double.Parse(number,
NumberStyles.Float,
CultureInfo.InvariantCulture);

我怀疑您正在使用 NumberStyles.AllowThousands。例如,以下将返回 1010:

var number ="10,10";
double value = double.Parse(number,
NumberStyles.Float | NumberStyles.AllowThousands,
CultureInfo.InvariantCulture);

更新

回应评论:

... but if I'm using en-US "10,10" becames "1010" instead of throwing an error

这不是我所期望的;例如,以下将抛出 FormatException:

var number ="10,10";
double value = double.Parse(number,
NumberStyles.Float,
new CultureInfo("en-US"));

关于c# - 验证当前文化中的双数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30892631/

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