There seems to be a problem converting large quads to variants or vice versa:
Code:
local q as quad local q1 as quad local q2 as quad local v as variant local d$ q = 3372036854775807 '16 decimal places q1 = val("3372036854775807") v = q q2 = VARIANT#(v) if VARIANT#(v) = q then d$ = " equal" else d$ = " not equal" end if msgbox str$(q, 18) + $crlf + str$(q1, 18) + $crlf + str$(VARIANT#(v),18) + $crlf + str$(q2, 18) + $crlf + d$ q = 23372036854775807 '17 decimal places q1 = val("23372036854775807") v = q q2 = VARIANT#(v) if VARIANT#(v) = q then d$ = " equal" else d$ = " not equal" end if msgbox str$(q, 18) + $crlf + str$(q1, 18) + $crlf + str$(VARIANT#(v),18) + $crlf + str$(q2, 18) + $crlf + d$ q = 223372036854775807 q1 = val("223372036854775807") v = q q2 = VARIANT#(v) if VARIANT#(v) = q then d$ = " equal" else d$ = " not equal" end if msgbox str$(q, 18) + $crlf + str$(q1, 18) + $crlf + str$(VARIANT#(v),18) + $crlf + str$(q2, 18) + $crlf + d$ q = 446744073709551615 q1 = val("446744073709551615") v = q q2 = VARIANT#(v) if VARIANT#(v) = q then d$ = " equal" else d$ = " not equal" end if msgbox str$(q, 18) + $crlf + str$(q1, 18) + $crlf + str$(VARIANT#(v),18) + $crlf + str$(q2, 18) + $crlf + d$
???
JK
Comment