It's all due to the definition of log base 10
If
So let's look at some integer cases first:
x = 1 y = 10
x = 2 y = 100
x = 3 y = 1000
and
x = 0 y = 1
x = -1 y = 0.1
x = -2 y = 0.01
x = -3 y = 0.001
Now for a number like eg. 53
and so on.
So numbers between 1 and 10 have a log that is between 0 and 1
numbers between 10 and 100 have a log that is between 1 and 2
numbers between 100 and 1000 have a log that is between 2 and 3
For your example 123456 = 1.23456 x 10^5 so the log will be 5.something
Bob
some back ground here: https://www.mathsisfun.com/algebra/logarithms.html
]]>how could log10 of a number like 123456 is 5?
I type that in google and it's 5.09151220163 not 5, I know we used casting so it discard the fractional parts to get 5, but my question is not about the Java it's about log10 why log10 always get the total digits with fractional parts always!
like log10 of 532 is 2.7259116323 which is 2 digits that is working! but how mathematically is that
how can Math.log10(12345) calculate the number of digits which is 5 correct!?
only that first part of the code is really ambiguous