Добавляем в ядро поддержку модификатора numDigits

Заставляет добавлять незначащие нули в строковом представлении целой части числа
This commit is contained in:
2023-06-30 22:30:18 +03:00
parent aef7613fdf
commit 88d61e7efa

View File

@@ -15,6 +15,7 @@ IoTItem::IoTItem(const String& parameters) {
if (!jsonRead(parameters, F("multiply"), _multiply, false)) _multiply = 1;
if (!jsonRead(parameters, F("plus"), _plus, false)) _plus = 0;
if (!jsonRead(parameters, F("round"), _round, false)) _round = -1;
if (!jsonRead(parameters, F("numDigits"), _numDigits, false)) _numDigits = 1;
if (!jsonRead(parameters, F("global"), _global, false)) _global = false;
@@ -119,9 +120,9 @@ String IoTItem::getRoundValue() {
if (_round >= 0 && _round <= 6) {
int sot = _round ? pow(10, (int)_round) : 1;
value.valD = round(value.valD * sot) / sot;
//todo: оптимизировать. Вынести расчет строки формата округления, чтоб использовать постоянно готовую
char buf[15];
sprintf(buf, ("%1." + (String)_round + "f").c_str(), value.valD);
sprintf(buf, ("%0" + (String)(_numDigits + _round) + "." + (String)_round + "f").c_str(), value.valD);
value.valS = (String)buf;
return value.valS;
} else {