diff --git a/include/boost/multiprecision/cpp_bin_float/io.hpp b/include/boost/multiprecision/cpp_bin_float/io.hpp index 88d5ddd0..877d0f6c 100644 --- a/include/boost/multiprecision/cpp_bin_float/io.hpp +++ b/include/boost/multiprecision/cpp_bin_float/io.hpp @@ -670,7 +670,7 @@ std::string cpp_bin_float::s switch(exponent()) { case exponent_zero: - s = "0"; + s = sign() ? "-0" : f & std::ios_base::showpos ? "+0" : "0"; boost::multiprecision::detail::format_float_string(s, 0, dig, f, true); break; case exponent_nan: