How do I get what the digits of a number are in C++ without converting it to strings or character arrays?
What about floor(log(number))+1?
With n digits and using base b you can express any number up to pow(b,n)-1. So to get the number of digits of a number x in base b you can use the inverse function of exponentiation: base-b logarithm. To deal with non-integer results you can use the floor()+1 trick.
PS: This works for integers, not for numbers with decimals (in that case you should know what's the precision of the type you are using).