diff --git a/include/fmt/format-inl.h b/include/fmt/format-inl.h index 8f78a406..5f976ed0 100644 --- a/include/fmt/format-inl.h +++ b/include/fmt/format-inl.h @@ -1990,17 +1990,17 @@ template struct small_division_by_pow10_info; template <> struct small_division_by_pow10_info<1> { static const uint32_t magic_number = 0xcccd; static const int shift_amount = 19; - static const int divisor = 10; + static const int divisor_times_10 = 100; }; template <> struct small_division_by_pow10_info<2> { static const uint32_t magic_number = 0xa3d8; static const int shift_amount = 22; - static const int divisor = 100; + static const int divisor_times_10 = 1000; }; template uint32_t small_division_by_pow10(uint32_t n) FMT_NOEXCEPT { - FMT_ASSERT(n <= small_division_by_pow10_info::divisor, "n is too large"); + FMT_ASSERT(n <= small_division_by_pow10_info::divisor_times_10, "n is too large"); return (n * small_division_by_pow10_info::magic_number) >> small_division_by_pow10_info::shift_amount; } diff --git a/test/grisu-test.cc b/test/grisu-test.cc index 3fc670cd..35af481d 100644 --- a/test/grisu-test.cc +++ b/test/grisu-test.cc @@ -54,6 +54,7 @@ TEST(GrisuTest, Prettify) { EXPECT_EQ("0.001234", fmt::format("{}", 1234e-6)); EXPECT_EQ("0.1", fmt::format("{}", 0.1f)); EXPECT_EQ("0.10000000149011612", fmt::format("{}", double(0.1f))); + EXPECT_EQ("1.3563156e-19", fmt::format("{}", 1.35631564e-19f)); } TEST(GrisuTest, ZeroPrecision) { EXPECT_EQ("1", fmt::format("{:.0}", 1.0)); }