【问题标题】:C# convert string to double in localeC# 在语言环境中将字符串转换为双精度
【发布时间】:2012-09-14 14:55:20
【问题描述】:

在我的语言环境中,小数点分隔符是“,”。

但是我仍然想编写一个 C# 应用程序,它可以处理使用“。”的数字。作为小数点分隔符。

        string b = "0,5";
        double db = double.Parse(b); // gives 0.5

        string a = "0.5";
        double da = double.Parse(a); // gives 5, however i would like to get 0.5

【问题讨论】:

标签: c# string-conversion


【解决方案1】:

您需要将文化指定为double.Parse 的第二个参数,例如

double da = double.Parse(a, CultureInfo.InvariantCulture);

几乎所有格式化/解析方法都有采用IFormatProvider 的重载,IFormatProvider 最常用的实现是CultureInfo。

【讨论】:

  • 只有当字符串中的值使用不变的文化存储时才有效。如果不是,0.5会被解析为0.5,而0,5会被解析为5……看来没有办法得到最终的解决方案。
  • @dzendras:问题说明了“编写一个 C# 应用程序,该应用程序可以处理使用 '.' 的数字。”作为小数分隔符” - 答案旨在满足该要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2022-01-20
相关资源
最近更新 更多