如何将浮点数精确转换为字符串? Arduino C++

问题描述 投票:0回答:2

我有一个像

3.14159
这样的数字,我希望它是
3.1

出于某种原因,Arduino 对库非常挑剔。目前我无法使用

string
库。

c++ arduino floating-point precision arduino-c++
2个回答
5
投票

我最终找到了一个很棒的解决方案。事实证明 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

所以逗号右边是小数位数参数。它有很多功能,但这是重载之一。您可以在这里看到它们


1
投票

默认情况下

sprintf
不支持标准Arduino环境中的浮点数,avr-gcc附带的dtostrf()可以满足你的需求。 此处使用示例

© www.soinside.com 2019 - 2024. All rights reserved.