【问题标题】:Double tryparse return value is inconsistent双tryparse返回值不一致
【发布时间】:2023-02-08 00:25:59
【问题描述】:

我有一个奇怪的问题。当使用 double.Tryparse 测试我的自定义格式的十六进制值时,它返回不一致的结果

例如

if (double.TryParse(dblValue, NumberStyles.Float, CultureInfo.InvariantCulture, out double x))

如果dblValue = "0E-63"上面的语句返回true 如果dblValue = "0E-5B"它返回false 我希望这两个自定义格式的十六进制值在 TryParse 中返回 false,以便我的代码将它们作为非数字处理。 我在这里错过了什么。

除了这个 double 和 integers 之外,其他都按预期工作。

【问题讨论】:

  • 0E-63 是科学格式的有效十进制数,0E-5B 不是。这就是为什么它解析第一个而不解析第二个的原因。

标签: c# .net double tryparse


【解决方案1】:

0E-63 这里不是十六进制- 它是 0 x(10 的 -63 次方) - 与 1E-03 解析为 0.001 的方式相同,即 1 x(10 的 -3 次方)。

此 API 不解析十六进制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多