【发布时间】:2020-12-29 09:35:09
【问题描述】:
我有一个类似3.14159 的号码,我希望它是3.1
由于某种原因,Arduino 对图书馆很挑剔。目前我无法使用string 库。
【问题讨论】:
标签: c++ arduino floating-point precision arduino-c++
我有一个类似3.14159 的号码,我希望它是3.1
由于某种原因,Arduino 对图书馆很挑剔。目前我无法使用string 库。
【问题讨论】:
标签: c++ arduino floating-point precision arduino-c++
默认情况下,sprintf 在标准 Arduino 环境中不支持浮点数,因此 avr-gcc 附带了 dtostrf(),它可以满足您的需求。 Sample usage here
【讨论】:
我最终找到了一个很棒的解决方案。原来Arduino有一个方法!这只是String() 方法。所以为了转换3.14159,只需输入⤵︎
float num = 3.14159
String str1 = String(num, 1) // 3.1
String str2 = String(num, 2) // 3.14
String str3 = String(num, 3) // 3.141
所以逗号右边是小数位参数。它有很多功能,但这是重载之一。你可以看到他们all here!
【讨论】: