``` std::size_t num_fractions_from_double_type(const double_type &v) { if (v == 1) return 1u; double_type r{v}; std::size_t n = 0u; for (; r != 1; ++n) { r *= 10; } return n; } ``` in the code, r!=1, it makes the for loop will continue forever if v!=1;