I have the problem, that I have to find the order of magnitue (decimal) of a float.
I do not want to use a logarithm, so at first I thought about something like this:

float x=0.01;
int a=0;
for(float b=x;b<1.0;b*=10.0){
Serial.println(b);
a--;
Serial.println(a);
}

The problem is, that the float is not accurate. So in the case of x=0.01 one will get on the serial monitor:

AWOL:
You could pick apart the binary exponent of the float and the sign, and convert to decimal.
Google "IEE 754"

Well the frexp function (assuming the Arduino library includes it) will do the basic job to return the power of 2 exponent via the int pointer passed as the second argument. But that still will take some calculations to get the correct power of 10.