diff options
-rw-r--r-- | parameter/FixedPointParameterType.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/parameter/FixedPointParameterType.cpp b/parameter/FixedPointParameterType.cpp index 436ff31..63d4d4c 100644 --- a/parameter/FixedPointParameterType.cpp +++ b/parameter/FixedPointParameterType.cpp @@ -189,7 +189,9 @@ bool CFixedPointParameterType::fromBlackboard(string& strValue, const uint32_t& double dData = asDouble(iData); // Set up the precision of the display and notation type - strStream << fixed << setprecision((_uiFractional + 1) * log10(2.0)) << dData; + int iPrecision = (_uiFractional * log10(2.0)) + 1; + int iFactor = pow(10.0, iPrecision); + strStream << fixed << ((int64_t)(dData * iFactor)) / (double)iFactor; } strValue = strStream.str(); |