代码之家  ›  专栏  ›  技术社区  ›  Bassie

decimal.Parse在本地化设置中无法按预期工作

  •  0
  • Bassie  · 技术社区  · 6 年前

    我的应用程序突然开始无法转换格式的字符串值 "18.000" 带错误的小数点或整数

    System.FormatException:输入字符串的格式不正确。

    当你尝试

    decimal.Parse(stringValue);
    int.Parse(stringValue);    
    

    即使前几天还不错。它也可以在我的本地计算机上运行,但不能在发布服务器上运行。

    结果我可以通过进来解决这个问题 CultureInfo.InvariantCulture 这样地:

    decimal.Parse(aod.PnPQuantity, CultureInfo.InvariantCulture)
    

    但当我检查服务器的本地化设置时,它肯定会使用 . 作为十进制分隔符:

    enter image description here

    我的问题是,这怎么可能?有没有其他设置我需要检查,这是可能已经改变了自己或有人一直在我的设置?

    会进来的 InvariantCulture 因为我已经阻止了将来发生这种事,还是需要采取进一步的预防措施?

    0 回复  |  直到 6 年前