C# - 字符串到单个转换错误

swd*_*mnd 0 .net c# floating-point

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

  1. “0.11”转换为 11,有时为 12。
  2. “0.10”转换为 10 等

正如您所看到的,它丢失了前导 0. ,这是出乎意料的。怎么会发生这种事?

Mon*_*Zhu 5

你的问题是特定于文化的。在某些文化中,浮点数由 分隔,,而在另一些文化中,浮点数由 分隔.

在你的情况下

String a = "0,11";
Convert.ToSingle(a)
Run Code Online (Sandbox Code Playgroud)

应该会得到您想要的结果 0,11。

.因此,您应该明确指定用作小数点分隔符的相关区域性。一种可能性是基于英语的不变文化。

请尝试以下操作:

String a = "0.11";
Convert.ToSingle(a, CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)