public static float parseFloat(final int start,final int end,final byte[] stream){
  final float d;
  int ptr=end;
  int intStart=start;
  boolean isMinus=false;
  for (int j=end - 1; j > start - 1; j--) {
    if (stream[j] == 46) {
      ptr=j;
      break;
    }
  }
  int intChars=ptr;
  final int decStart=ptr;
  if (stream[start] == 43) {
    intChars--;
    intStart++;
  }
 else   if (stream[start] == 45) {
    intStart++;
    isMinus=true;
  }
  final int intNumbers=intChars - intStart;
  final int decNumbers=end - ptr;
  if (intNumbers > 4) {
    isMinus=false;
    final int count=end - start;
    final byte[] floatVal=new byte[count];
    System.arraycopy(stream,start,floatVal,0,count);
    d=Float.parseFloat(new String(floatVal));
  }
 else {
    d=convertFloatFromStream(stream,intStart,decStart,intNumbers,decNumbers);
  }
  if (isMinus) {
    return -d;
  }
 else {
    return d;
  }
}

public static float parseFloat ( final int start , final int end , final byte [ ] stream ) { final float d ; int ptr = end ; int intStart = start ; boolean isMinus = false ; for ( int j = end - 1 ; j > start - 1 ; j -- ) { if ( stream [ j ] == 46 ) { ptr = j ; break ; } } int intChars = ptr ; final int decStart = ptr ; if ( stream [ start ] == 43 ) { intChars -- ; intStart ++ ; } else if ( stream [ start ] == 45 ) { intStart ++ ; isMinus = true ; } final int intNumbers = intChars - intStart ; final int decNumbers = end - ptr ; if ( intNumbers > 4 ) { isMinus = false ; final int count = end - start ; final byte [ ] floatVal = new byte [ count ] ; System . arraycopy ( stream , start , floatVal , 0 , count ) ; d = Float . parseFloat ( new String ( floatVal ) ) ; } else { d = convertFloatFromStream ( stream , intStart , decStart , intNumbers , decNumbers ) ; } if ( isMinus ) { return - d ; } else { return d ; } }
turn stream of bytes into a flaot number
