case inlist(VariableType, T_NUMERIC) declare VOID RtlMoveMemory in win32api Double @Dest, Char @Src, Size_T BytesToCopy && 1 : 0a 00 && 1.1 : 0c 01 && 1.12 : 0d 02 && 1.123 : 0e 03 && 1.1234 : 0f 04 && 1/3 : 0d 02 depends on set decimals when division was done c = fread_at(fd, FileOffset +32 + OffsetValue, 8) set decimals to (VariableDecimals) VariableValue = 10^(-VariableDecimals) VariableLength = 8 =RtlMoveMemory(@VariableValue, @c, VariableLength )>Hi Gregory,
>CLEAR >? 'format to decimal 10' >SET DECIMALS TO 10 >? 'literal round 2 is bad, round 3 is ok' >? 3.9=3.900000000,3.9*55.15=3.900000000*55.15,ROUND(3.9*55.15,2)=ROUND(3.900000000*55.15,2) ,ROUND(3.9*55.15,3)=ROUND(3.900000000*55.15,3) >a=55.15 >y=3.900000000 >x=3.9 >rx=x*a >ry=y*a >? 'variables round 2 is bad, round 3 is ok' >? x=y, x*a=y*a ,ROUND(x*a,2)=ROUND(y*a,2),ROUND(x*a,1)=ROUND(y*a,1) >? rx=ry, ROUND(rx,2)=ROUND(ry,2) ,ROUND(rx,3)=ROUND(ry,3) > >? 'format to decimal 11' > >SET DECIMALS TO 11 >? 'literal round 2 is ok, round 3 is ok' >? 3.9*55.15=3.900000000*55.15,ROUND(3.9*55.15,2)=ROUND(3.900000000*55.15,2) ,ROUND(3.9*55.15,3)=ROUND(3.900000000*55.15,3) > >a=55.15 >y=3.900000000 >x=3.9 >rx=x*a >ry=y*a >? 'variables round 2 is bad, round 3 is ok' >? x=y, x*a=y*a ,ROUND(x*a,2)=ROUND(y*a,2),ROUND(x*a,1)=ROUND(y*a,1) >? rx=ry, ROUND(rx,2)=ROUND(ry,2) ,ROUND(rx,3)=ROUND(ry,3) >>