Code: Select all
function unit_dbl( in as ulongint ) as double
return in / ( 2^64 + 2^12 )
end function
dim as ulongint max = -1
print unit_dbl( max )
Code: Select all
function unit_dbl( in as ulongint ) as double
return in / ( 2^64 + 2^12 )
end function
dim as ulongint max = -1
print unit_dbl( max )
Code: Select all
dim as double x
x=9007199254740992 ' 2^53
? x
x+=1#
? x
x+=1#
? x
sleep
Code: Select all
#include once "libbid.bi"
Using BID
dim as Decimal64 x
x=9007199254740992 ' 2^53
? x
x+=1#
? x
x+=1#
? x
x=9007199254740998
? x
x+=1#
? x
x+=1#
? x
sleep
Code: Select all
Sub increment(s As String)
Dim As Integer counts
Var ls=Len(s)
Do
If s[ls-counts-1]=57 Then
counts=counts+1
If counts=ls Then s="1"+String(ls,"0"):Exit Do
Else
s=Left(s,ls-counts-1)+Str(s[ls-counts-1]-47)+String(counts,"0")
Exit Do
End If
Loop
End Sub
var x=str(9007199254740992)
print " double";tab(30);"ulongint";tab(60);"string"
for n as long=1 to 20
increment(x)
print val(x),valulng(x),x
next
sleep
Code: Select all
var x=9999999999999988ull
print " double";tab(30);"ulongint"
for n as long=1 to 20
x+=1
print cdbl(x);tab(30);x
next
sleep