System.FormatException:“输入字符串的格式不正确。”

img


System.FormatException:“输入字符串的格式不正确。”

这个提示这么直白了,不用解释了吧,调试界面也能看到那个str确实不符合浮点数的格式。
这个数据来自单片机?float.parse是不会在一堆杂乱的数据中给你找出一个浮点数的,你得做个预处理,处理成一个干净的float字符串,才能用这个函数做解析。

你可以直接 str as float 如果返回null就是类型不对返回值的话就直接转换成功了,而且不会有异常。

谨记一条:永远不要相信用户输入的内容。
所以
float.parse(str)
需要改为能兼容的
float.TryParse()

float num;
if(!float.TryParse(str,out num))
{
   //处理str错误的格式
}

如前面所说,如果你是要在一个数据流里找float需要用try

另外,很多下位机都是LittleEndian,但PC机都是BigEndian,对应的float也是倒着的