stringToFloat static method

double stringToFloat(
  1. String str,
  2. int top,
  3. ParamInteger stop
)

Implementation

static double stringToFloat( String str, int top, ParamInteger stop ){
	int step = 0;
	int i = top;
	bool _break = false;
	while( i < str.length ){
		switch( step ){
			case 0:
				if( (charAt( str, i ) == '+') || charAt( str, i ) == '-' ){
					i++;
				}
				step++;
				break;
			case 1:
			case 3:
			case 5:
				if( (charCodeAt( str, i ) >= charCode0) && (charCodeAt( str, i ) <= charCode9) ){
					i++;
				} else {
					step++;
				}
				break;
			case 2:
				if( charAt( str, i ) == '.' ){
					i++;
					step = 3;
				} else {
					step = 4;
				}
				break;
			case 4:
				if( (charAt( str, i ) == 'e') || (charAt( str, i ) == 'E') ){
					if( (charCodeAt( str, i + 1 ) >= charCode0) && (charCodeAt( str, i + 1 ) <= charCode9) ){
						i++;
						step = 5;
						break;
					}
					if( (charAt( str, i + 1 ) == '+') || charAt( str, i + 1 ) == '-' ){
						i += 2;
						step = 5;
						break;
					}
				}
				// そのまま下に流す
				continue case_6;
			case_6:
			case 6:
				_break = true;
				break;
		}
		if( _break ){
			break;
		}
	}
	stop.set( i );
	if( i == 0 ){
		return 0;
	}
	return double.parse( str.substring( top, i ) );
}