Hereβs the inner workings of a custom function that handles +ve and -ve exponents:
$V_FORMATTED_NUMBER = $P_INPUT_STRING ;
Process positive exponents 1
if (lower($P_INPUT_STRING) like β%e+%β)
begin
$V_POSITION = index(lower($P_INPUT_STRING) ,βeβ, 1);
$V_VALUE = substr($P_INPUT_STRING ,1, $V_POSITION -1);
$V_EXPONENT = ltrim( substr( $P_INPUT_STRING , $V_POSITION +2, 99),β0β);
$V_FORMATTED_NUMBER = $V_VALUE * power( 10, $V_EXPONENT );
end
Process positive exponents 1
if (lower($P_INPUT_STRING) like β%e%β and lower($P_INPUT_STRING) not like β%e+%β and lower($P_INPUT_STRING) not like β%e-%β)
begin
$V_POSITION = index(lower($P_INPUT_STRING) ,βeβ, 1);
$V_VALUE = substr($P_INPUT_STRING ,1, $V_POSITION -1);
$V_EXPONENT = ltrim( substr( $P_INPUT_STRING , $V_POSITION +1, 99),β0β);
$V_FORMATTED_NUMBER = $V_VALUE * power( 10, $V_EXPONENT );
end
Process negative exponents
if (lower($P_INPUT_STRING) like β%e-%β)
begin
$V_POSITION = index(lower($P_INPUT_STRING) ,βeβ, 1);
$V_VALUE = substr($P_INPUT_STRING ,1, $V_POSITION -1);
$V_EXPONENT = ltrim( substr( $P_INPUT_STRING , $V_POSITION +2, 99),β0β);
$V_FORMATTED_NUMBER = $V_VALUE * power( 10, $V_EXPONENT*-1 );
end
if (is_valid_double( $V_FORMATTED_NUMBER , β##########.##########β) = 0)
$V_FORMATTED_NUMBER = ββ;
return $V_FORMATTED_NUMBER ;
Barry_Carlino (BOB member since 2010-12-16)