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

本文关键字:单个 转换 字符串 错误 | 更新日期: 2023-09-27 18:08:42

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

  1. "0.11"被转换为11,有时是12。
  2. "0.10"转换为10。等

可以看到,它正在丢失前导0。这是出乎意料的。这是怎么发生的?

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

你的问题与文化有关。在某些文化中,浮点数用,隔开,在某些文化中,用.隔开

在你的情况下

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

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

因此,您应该显式地指定使用.作为小数分隔符的相关区域性。一种可能是以英语为基础的不变文化。

尝试以下操作:

String a = "0.11";
Convert.ToSingle(a, CultureInfo.InvariantCulture)