diff --git a/include/fmt/format.h b/include/fmt/format.h index e220ef97..092ec959 100644 --- a/include/fmt/format.h +++ b/include/fmt/format.h @@ -1807,6 +1807,11 @@ struct big_decimal_fp { int exponent; }; +template +inline Char get_default_decimal_point() { + return static_cast('.'); +} + inline int get_significand_size(const big_decimal_fp& fp) { return fp.significand_size; } @@ -2006,7 +2011,7 @@ OutputIt write(OutputIt out, T value, basic_format_specs specs, int exp = format_float(promote_float(value), precision, fspecs, buffer); fspecs.precision = precision; Char point = - fspecs.locale ? decimal_point(loc) : static_cast('.'); + fspecs.locale ? decimal_point(loc) : get_default_decimal_point(); auto fp = big_decimal_fp{buffer.data(), static_cast(buffer.size()), exp}; return write_float(out, fp, specs, fspecs, point); } @@ -2033,7 +2038,7 @@ OutputIt write(OutputIt out, T value) { return write_nonfinite(out, std::isinf(value), specs, fspecs); auto dec = dragonbox::to_decimal(static_cast(value)); - return write_float(out, dec, specs, fspecs, static_cast('.')); + return write_float(out, dec, specs, fspecs, get_default_decimal_point()); } template