IsFloat

Determine if a number is float.

Deze functie had ik nodig om te bepalen of een getal uit een tekstbestand een float is of niet. De standaard datastage controles voldeden niet omdat Datastage probeert te bedenken wat het zou moeten zijn. --1 zet Datastage bijvoorbeeld om naar -1. Deze functie is heel strict.

Function IsFloat(Num, DecimalSymbol,NullAllowed)
Result = 0

LenNum = Len(Trim(Num))  

If LenNum = 0 and NullAllowed = "N" then Result = 0 
Else

   StrTemp = trim(Num)

   L = Len(StrTemp)

   If (L > 0) Then
     If StrTemp [1,1] = "-" then StrTemp = Num[2,L-1]   ;* remove the minus symbol

     if Count(StrTemp,DecimalSymbol) <= 1 then          ;* is there no more than one decimal symbol?
        StrTemp= Convert(DecimalSymbol,"",StrTemp)      ;* remove the decimal symbol
        If StrTemp Match Len(StrTemp) : "N" then        ;* Are all other chars numeric?
          Result = 1
        end
     end
   end
   else
     Result = 1
   end

end

Ans = Result