synchronized double acquire(double minTokens,double maxTokens){
  refill();
  double avail=Math.floor(Math.min(maxTokens,tokens));
  if (avail >= minTokens) {
    tokens-=avail;
    return avail;
  }
  return 0.0f;
}

synchronized double acquire ( double minTokens , double maxTokens ) { refill ( ) ; double avail = Math . floor ( Math . min ( maxTokens , tokens ) ) ; if ( avail >= minTokens ) { tokens -= avail ; return avail ; } return 0.0f ; }
refills and attempts to acquire tokens between min and max parameters .
