sprintf出现小数点变成字符,如2.77变成2F77,有解决办法吗?
sprintf(dis_buffer,"%.2f",(float)PM6010_Measure_Dta.Comm_Info.Absorption_ratio/100);这个格式里的小数点会被字母代替的,比如说2.77最后会转换成2F77。有解决办法吗?目前可以确认是sprintf造成的,还有个关键问题是必须运行一段时间才能出现,但也有可能不出现,测试三台仪表,2台有这个问题 貌似,是你的程序数据异常(如栈溢出等造成的)。 与printf无关。 chardis_buffer; Absorption_ratio这个值不会超过300,不会溢出吧 堆栈溢出,2楼说得没错 哪里最有可能会溢出? mculjf 发表于 2022-9-21 11:28哪里最有可能会溢出?
(引用自5楼)
你程序里别的地方栈溢出,把这个缓存改写了。 自查了一遍,没发现有栈溢出的情况,所有的数据都有上限控制 楼上几位的意思是你数组之类的操作过界了,误修改了小数点这个存储位置的内容,不是说你的变量值溢出
页:
[1]