private boolean readNumber( boolean fireEvent, StringBuffer b  ) 
	throws IOException,
	       JSONSyntaxException {

	// Detect any sequence of digits
	while( this.readChar() && this.isDigit(this.currentChar) )
	    b.append( this.currentChar );
	
	// Floating point following?
	if( this.currentChar == '.' ) {

	    b.append( this.currentChar );
	    this.readFloatingNumberFrac( false, b );

	} 

	if( fireEvent ) 
	    this.fireNumberRead( b.toString() );
	
	
	return (this.currentValue != -1);
    }