Wie ich feststellen konnte, hat RS 2010r1 Probleme bei Operationen mit
großen Zahlen (UInt64) :-(

In RS2011r4 scheinen die zumindes bezüglich der Division noch zu
bestehen:

 dim nr as UInt64

 nr=1152921504606846974

 nr=nr/2
 nr=nr*2
 MsgBox "1152921504606846974="+Str(nr)

Ich erhalte bei mir "1152921504606846974=1152921504606846976". Kann
das jemand bestätigen?

Weitere Funktionen die nicht korrekt arbeiten (nur in RB2010r1 getestet)
sind Val() und format(z,"###,###,###,###,###,###,###"). Die Probleme
treten erst bei sehr großen Zahlen auf (etwa >60 Bit ?).

Lösung für Val():
Function Val64(s as String) As UInt64
 dim z1,z2 as UInt64
 Dim s1,s2 as String

 if len(s)>10 then
   s1=Right(s,10)
   s2=Left(s,len(s)-10)
   z1=val(s1)
   z2=val(s2)
   z2=z2*10000000000
   z2=z2+z1
   Return z2
 else
   Return val(s)
 end

Lösung für format(z,"###,###,###,###,###,###,###"):
Function format64(z as UInt64) As String
 dim r,s,t as String

 s=Str(z)
 if len(s)>15 then
   t=Right(s,3)
   do
     s=left(s,len(s)-3)
     r=Right(s,3)
     t=r+"."+t
     if len(s)<4 then
       exit
     end
   loop

   Return t
 else
   Return format(z,"###,###,###,###,###,###,###")
 end

Eine Lösung für die Division muss ich noch basteln.

MfG, Metti.

Antwort per Email an