question: public static float roundToNextSignificant ( double number ) { final float d = ( float ) Math . ceil ( ( float ) Math . log10 ( number < 0 ? - number : number ) ) ; final int pw = 1 - ( int ) d ; final float magnitude = ( float ) Math . pow ( 10 , pw ) ; final long shifted = Math . round ( number * magnitude ) ; return shifted / magnitude ; }
target:  rounds the given number to the next significant number