>a=123456789012345678
>? a
>result is :
>123456789012345700
>why or how can i see the true result?
SET DECIMALS may help, but there is a limit to the precision of a number. Numbers of this magnitude are stored as floating point values and are intherently subject to rounding errors because they are not integer representations. You don't have 18 digits of precision, since this is going to be stored as a floating point number. And in all probability, and in all probability, unless you are computing astronomical distances, you don't have a real requirement of 18 digit precision. And if you do, you want a language with something bigger than the available float representations in VFP. The way the number is stored, it probably can't resolve the units in the least significant digit position accurately.
FORTRAN or one of the other scientific/mathematical languages, or LISP, would be far more appropriate for this type of precision, and would offer stronger numerical support.