Why is std::numeric_limits::digits10 is one less for int types?
<p>Why <code>std::numeric_limits&lt;Any Int Type&gt;::digits10</code> is one less than it can be?</p>

<p>For example, <code>std::numeric_limits&lt;int8_t&gt;::digits10 == 2</code>, but <code>100</code> consists of three digits.</p>

<p>Or, <code>std::numeric_limits&lt;int64_t&gt;::digits10 == 18</code>, but INT64_MAX (<code>9'223'372'036'854'775'807</code>) consists of 19 digits.</p>