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;
}

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 ; }
rounds the given number to the next significant number
