【问题标题】:String with negative float to float? [duplicate]带有负浮动的字符串浮动? [复制]
【发布时间】:2014-08-07 12:49:20
【问题描述】:

这基本上是我的代码:

string text = "-0.05537987";

float value = Single.Parse(text);

当我尝试解析负数时,我得到“输入字符串的格式不正确。”

【问题讨论】:

  • 它对我有用。在 Windows 7 上使用 .NET 4.0 客户端。也许问题出在代码的其他地方?
  • 问题出在别处很抱歉

标签: c#


【解决方案1】:

您的解析应该可以工作,我相信您当前的文化对于小数分隔符有不同的字符。使用CultureInfo.InvariantCulture

float value = Single.Parse(text, CultureInfo.InvariantCulture);

【讨论】:

  • 或者他可以将他的线程文化更改为适当的文化... Thread.CurrentThread.CurrentCulture = new CultureInfo("his-string-format-culture");
  • @user3740638,你确定你在文本中的值是"-0.05537987" 吗?它应该可以工作。
  • Ummmmmmmm 我是个白痴。在我的实际代码中,我使用破折号拆分字符串,而否定的破折号拆分字符串并将所有内容都搞砸了。抱歉,感谢您的快速回复。
【解决方案2】:

你的代码对我来说很好 - https://dotnetfiddle.net/JfPfss

使用 InvariantCulture 看看是否是问题所在:

float value = Single.Parse(text, CultureInfo.InvariantCulture);

【讨论】:

    【解决方案3】:

    只需使用 CultureInfo.InvariantCulture

    string text = "-0.05537987";
    float value = Single.Parse(text, CultureInfo.InvariantCulture);
    MessageBox.Show("your value = "+value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      相关资源
      最近更新 更多