【发布时间】:2016-08-25 13:21:40
【问题描述】:
我正在使用 AtmelStudio 在 AVR XMEGA 微控制器上编程。
我无法将字符串转换为浮点数。该字符串称为token2,其值为"8.604165"
我已经尝试了几个功能:
-
float lon = atof(token2); printf("lon=%f", lon);返回lon=? -
float lon = strtod(token2, NULL); printf("lon=%f", lon);返回lon=? -
float lon = strtof(token2, NULL); printf("lon=%f", lon);给出错误undefined reference to strtof,甚至包括<stdlib.h>
我做错了吗?
【问题讨论】:
-
你的代码可以没问题:look at this example
-
请发帖Minimal, Complete, and Verifiable example。你在为微控制器写一些代码吗?如果是,请指定环境。可能相关:c - Arduino: printf/fprintf prints question mark instead of float - Stack Overflow
-
是的@MikeCAT。我正在 AVR XMega 微控制器上编程
-
看起来您的问题出在
printf,而不是转换。试试printf("lon=%f", 8.604165);,告诉我们你看到了什么。顺便说一句,在第三个项目符号中,我不会将其描述为“返回错误”,因为这里没有“返回”(这是编译错误,而不是运行时错误)。 -
另外,请使用调试器,告诉我们在调用
atof和调用strtod之后lon的值是多少。
标签: c string floating-point microcontroller