summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/field.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/field.cc b/sql/field.cc
index c604f04339c..1878797297f 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -5909,6 +5909,7 @@ int Field_str::store(double nr)
uint length;
uint local_char_length= field_length / charset()->mbmaxlen;
double anr= fabs(nr);
+ bool fractional= (anr != floor(anr));
int neg= (nr < 0.0) ? 1 : 0;
uint max_length;
int exp;
@@ -5937,7 +5938,7 @@ int Field_str::store(double nr)
calculate the maximum number of significant digits if the 'f'-format
would be used (+1 for decimal point if the number has a fractional part).
*/
- digits= max(0, (int) max_length - (nr != trunc(nr)));
+ digits= max(0, (int) max_length - fractional);
/*
If the exponent is negative, decrease digits by the number of leading zeros
after the decimal point that do not count as significant digits.