I'm trying to validate an entered Latitude value as having a maximum of
6 digits after the decimal point. Sometimes it doesn't work. In the case
below, it is 48.590278. This should be valid, but the
'Message.Info("More than 6 decimal digits - try again")' line is being
executed. As you can see from the Print statements, the check should be
OK. Am I missing something really obvious?

Public Sub ValueBoxLatitude_LostFocus()
  Dim latitude As Float
  Dim f As Float
  Dim g As Float
  If IsNull(Last.Value) Then Return
  latitude = Last.Value
  If latitude < -90 Or latitude > 90 Then
    Message.Info("Must be between -90 and +90 - try again")
    Last.SetFocus()
    Stop Event 
  End If
  f = latitude * 1000000
  g = CFloat(CInt(f))
  Print "f=" & f
  Print "g=" & g
  If f <> g Then
    Message.Info("More than 6 decimal digits - try again")
    Last.SetFocus()
    Stop Event
  End If

f=48590278
g=48590278

-- 
Regards,
John
+44 1902 331266
+44 7894 211434




------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to