aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/serializer/validating/decimal.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/serializer/validating/decimal.cxx')
-rw-r--r--libxsde/xsde/cxx/serializer/validating/decimal.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/libxsde/xsde/cxx/serializer/validating/decimal.cxx b/libxsde/xsde/cxx/serializer/validating/decimal.cxx
index d4408af..a01cbc2 100644
--- a/libxsde/xsde/cxx/serializer/validating/decimal.cxx
+++ b/libxsde/xsde/cxx/serializer/validating/decimal.cxx
@@ -45,12 +45,14 @@ namespace xsde
//
char str[128];
+ unsigned int p (f.fraction_digits_set_
+ ? f.fraction_digits_
+ : precision_);
+
#ifdef XSDE_SNPRINTF
- int n = snprintf (str, 128, "%.*f",
- static_cast<int> (precision_), value_);
+ int n = snprintf (str, 128, "%.*f", static_cast<int> (p), value_);
#else
- int n = sprintf (str, "%.*f",
- static_cast<int> (precision_), value_);
+ int n = sprintf (str, "%.*f", static_cast<int> (p), value_);
#endif
if (n > 0 && n < 128)
{