关于.net:C# – 单个转换错误的字符串

C# - wrong string to single conversion

本问题已经有最佳答案,请猛点这里访问。

我正在编写一个程序,从微控制器获取数据到PC机。数据是浮动格式的。我试图使用Convert.ToSingle(string)将字符串转换为float,但转换结果是错误的:

  • "0.11"转换为11,有时为12。
  • "0.10"转换为10。等
  • 如你所见,它正在失去领先的0。,这是意外的。怎么会这样?


    你的问题是文化问题。在某些文化中,浮点数用,分隔,而在某些文化中,浮点数用.分隔。

    在你的情况下

    1
    2
    String a ="0,11";
    Convert.ToSingle(a)

    结果应该是0.11。

    因此,您应该指定您的区域性,或者使其保持不变,以便可以接受这两种可能性。

    请尝试以下操作:

    1
    Convert.ToSingle(a, CultureInfo.InvariantCulture)