ESP32连接电子墨水屏显示加密货币价格按区间调整小数位数问题
ESP32加密货币价格自定义精度显示解决方案
实现思路
模仿现有代码中formatPercentageChange的工具函数设计思路,新增独立的价格格式化函数处理不同区间的小数保留规则,避免直接在行内写if-else引发的语法错误,同时后续修改规则更方便。
具体修改步骤
新增价格格式化工具函数
将以下代码添加到你现有代码中formatPercentageChange函数的后面即可:
String formatCryptoPrice(double price) { // 异常值兜底处理 if (price < 0) return "0.00"; // 按你要求的区间匹配精度 if (price < 1) { return String(price, 6); } else if (price >= 1 && price < 10) { return String(price, 4); } else { // 10及以上(含10~100、100以上)统一保留2位小数,可按需调整 return String(price, 2); } }
如果需要单独区分10~100区间的精度,可修改else分支为:
} else if (price >=10 && price <100) { return String(price, 2); // 这里可以改成你需要的精度,比如3位就填3 } else { return String(price, 2); }
替换原有的价格转换代码
找到renderCryptoCard函数中的原有代码:
String Str = String (crypto.price.eur, 6);
直接替换为:
String Str = formatCryptoPrice(crypto.price.eur);
验证说明
修改完成后编译上传即可,价格会自动按你设定的规则保留小数位,四舍五入逻辑由Arduino的String类内置实现,无需额外处理。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

