Added an if expression for the individual case described in fmtlib/fmt/issues/1917.
Adjusts the length of the number to match the precision for the exponential number format.
This commit is contained in:
parent
5bcd642bcc
commit
7eb5e3f583
@ -2468,6 +2468,15 @@ int format_float(T value, int precision, float_specs specs, buffer<char>& buf) {
|
|||||||
} else {
|
} else {
|
||||||
exp -= cached_exp10;
|
exp -= cached_exp10;
|
||||||
buf.try_resize(to_unsigned(handler.size));
|
buf.try_resize(to_unsigned(handler.size));
|
||||||
|
if ((specs.format == detail::float_format::exp) && (buf.size() > precision)) {
|
||||||
|
if (exp < 0) {
|
||||||
|
exp += (buf.size() - precision);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
exp -= (buf.size() - precision);
|
||||||
|
}
|
||||||
|
buf.try_resize(to_unsigned(precision));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!fixed && !specs.showpoint) {
|
if (!fixed && !specs.showpoint) {
|
||||||
// Remove trailing zeros.
|
// Remove trailing zeros.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user