使用snprintf把整数转换成字符串输输出,用%d,一直没有错误
使用snprintf把浮点数转换成字符串输出,用%m.nf,大多数情况下正常,偶尔会出现错误,而且对同一个浮点数出现错误后的值一样
如下程序,就是偶尔会出错的方式
char ReplySting[40] = "12345678901234567890123456789012345678\r\0";
float myfloat = 25.55;
snprintf(ReplyString, sizeof(ReplyString), "Value=%2.2f\r", myfloat);
如果把最后一句换成如下的方法,就一直没有错误
snprintf(ReplyString, sizeof(ReplyString), "Value=%d.%2d\r", (int)myfloat, (int)(myfloat*100 - (int)myfloat*100));
为什么呢?
环境:mdk3.8 + stm32 V3.3库 + stm32f107 |