sprintf float和double变量

时间:2012-09-08 11:51:49

标签: c avr

sprintf(SBuff,"Float value %0.4f ",temp_float);
USART0_TransmitString(SBuff);

我也尝试了%f,并将temp_float变量设为double(%lf)。

但是在Usart上我总是得到 Float值?代替我得到问号的temp_float值。

1 个答案:

答案 0 :(得分:4)

AVR的sprintf()默认情况下没有实现浮点来节省闪存空间,你需要更改一些编译器选项来实现这一点;

  

如果包括浮点转换在内的完整功能是   必填时,应使用以下选项:

     

-Wl,-u,vfprintf -lprintf_flt -lm

可以找到完整的详细信息here