
On Sun, Jan 19, 2025 at 08:04, Ruben Perez <rubenperez038@gmail.com> wrote: Hi, Some problems I've found: The decimal32 doc page states that the minimum normalized value is 1e-95. The std::numeric_limits<>::min() function agrees with that. However, fpclassify and similar functions don't seem to agree: // Both of the above print "1" std::cout << issubnormal(std::numeric_limits<boost::decimal::decimal32>::min()) << std::endl; std::cout << issubnormal(1.0e-95_df) << std::endl; Printing very small values seem to do nothing: // This prints an empty line auto v = 1.0e-94_df; std::cout << v << std::endl; Calling to_chars with subnormal values fails with std::errc::not_supported, regardless of the chars_format used: // This prints: Error: generic:95 void f(decimal32 v) { char buff[64]{}; auto r = boost::decimal::to_chars(buff, buff + sizeof(buff), v); std::cout << "Error: " << std::make_error_code(r.ec) << std::endl; } int main() { auto v = 1e-95_df; f(v); } Am I doing something stupid? Nope. See issue 794 and pr 796 Matt