这个提示这么直白了,不用解释了吧,调试界面也能看到那个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也是倒着的