I just came across the need to calculate the digits of a number. It sounds trivial as we can see the digits & count them easily.
The challenge is how to find them (with least effort) computationally?

Solution:

1 + (int) (Math.log(i) / base10)

where base10 = Math.log(10)