各型の桁数を取得
std::numeric_limits
ただし、桁落ちしているらしいので +1 する必要があるみたい?
ここら辺はよく分かっていない。
[ソース]
#include <iostream> #include <limits> int main(){ std::cout << std::numeric_limits<int>::digits10+1 << std::endl; std::cout << std::numeric_limits<unsigned int>::digits10+1 << std::endl; std::cout << std::numeric_limits<char>::digits10+1 << std::endl; std::cout << std::numeric_limits<short>::digits10+1 << std::endl; std::cout << std::numeric_limits<long long>::digits10+1 << std::endl; return 0; }
[出力]
10 10 3 5 19