From d3d203842a67b856b71f2fe3c62d88c58e201c13 Mon Sep 17 00:00:00 2001 From: trabus322 Date: Mon, 18 Mar 2024 23:53:47 +0100 Subject: [PATCH] Made float have the correct number of decimal places --- src/hoymiles/portParameters/portParametersGeneric.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/hoymiles/portParameters/portParametersGeneric.cpp b/src/hoymiles/portParameters/portParametersGeneric.cpp index 89169a1..ea6ed36 100644 --- a/src/hoymiles/portParameters/portParametersGeneric.cpp +++ b/src/hoymiles/portParameters/portParametersGeneric.cpp @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include "modbus.h" @@ -61,7 +63,9 @@ void PortParameterFloat::setValueFromRegisters(uint16_t *readArray, int register std::string PortParameterFloat::getOutputValue() { std::string separator{"_age"}; - return std::to_string(this->value.f).append(separator.append(std::to_string(this->age))); + std::stringstream valueStringStream; + valueStringStream << std::fixed << std::setprecision(this->decimalPlaces) << this->value.f; + return valueStringStream.str().append(separator.append(std::to_string(this->age))); } PortParameterInt::PortParameterInt(std::string name, uint16_t parameterAddressOffset, int registerSize) : PortParameter(name, parameterAddressOffset, registerSize) {