summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parameter/FixedPointParameterType.cpp4
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();