Upper Case Conversion Required
I wrote the code snip below to do some extra checking on string to
double conversion. I did not expect the need to call toUpperCase.
What was I not anticipating? It just didn't seem logical to me,
given the number of tools out there that create their floating point
numbers with a lower case "e".
-------------------------
private java.util.Locale myLocale =
java.util.Locale.getDefault( );
private java.text.NumberFormat DFormat =
java.text.NumberFormat.getInstance( myLocale );
private java.text.ParsePosition DPosition =
new java.text.ParsePosition( 0 );
public double DparseDouble( String S ) throws NumberFormatException
{
// Trim it and check for a blank string.
// Upper case is needed to match the "E" in scientific notation.
String T = S.trim( ).toUpperCase( );
if( T.length( ) == 0 )
{
throw new NumberFormatException( );
}
// Otherwise, try to parse it.
DPosition.setIndex( 0 );
Number parsedNumber = DFormat.parse( T, DPosition );
// Failure will occur if none or only a part of the string
// is properly parsed.
if( DPosition.getIndex( ) < T.length( ) )
{
throw new NumberFormatException( );
}
return parsedNumber.doubleValue( );
}