From 6bcde9aab26c4ca9bfd4338fc15e26665a4d6b0a Mon Sep 17 00:00:00 2001 From: jk-jeon <33922675+jk-jeon@users.noreply.github.com> Date: Tue, 22 Sep 2020 10:33:52 -0700 Subject: [PATCH] https://github.com/fmtlib/fmt/pull/1882#issuecomment-696823912 (#1894) --- include/fmt/format-inl.h | 6 +++--- test/grisu-test.cc | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) 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)); }