【发布时间】:2021-05-19 18:41:03
【问题描述】:
使用 round() 时出现意外结果:
#include <Arduino.h>
int main(void) {
init();
Serial.begin(9600);
float a = 1.0;
float b = round(a);
Serial.println(b); // prints "1.50"
delay(100);
return 0;
}
得到期望值1.0的诀窍是什么?
【问题讨论】:
-
假设这是 C++,你是否包含了声明 round() 和 Serial 的标头?启用对浮点的支持(如果您的操作系统需要)?你能给我们展示一个完整的、最小的程序吗?
-
@Jens 我包含了完整的代码示例
-
以
main结尾的嵌入式裸机程序return 0??嗯。它不能很好地结束。 -
请将
b替换为"Hello world"并查看它正在打印。也许你没有正确编译/刷新代码。 -
@EugeneSh。如果我删除
return 0或在无限循环中运行代码,它会打印相同的结果......
标签: c arduino-ide atmega32