diff --git a/src/lib/ebus/datatype.cpp b/src/lib/ebus/datatype.cpp index 7679f9c3..5abc6c87 100755 --- a/src/lib/ebus/datatype.cpp +++ b/src/lib/ebus/datatype.cpp @@ -747,7 +747,7 @@ result_t NumberDataType::readSymbols(size_t offset, size_t length, const SymbolS result_t NumberDataType::readFromRawValue(size_t length, unsigned int value, OutputFormat outputFormat, ostream* output) const { int signedValue; - *output << defaultfloat << setw(0) << dec; // initialize output + *output << defaultfloat << setw(0) << dec << setprecision(0); // initialize output if (!hasFlag(REQ) && value == m_replacement) { if (outputFormat & OF_JSON) { @@ -836,7 +836,7 @@ result_t NumberDataType::readFromRawValue(size_t length, unsigned int value, signedValue = static_cast(value); } if (m_divisor < 0) { - *output << fixed << setprecision(0) + *output << fixed << (static_cast(signedValue) * static_cast(-m_divisor)); } else if (m_divisor <= 1) { if (hasFlag(FIX) && hasFlag(BCD)) {