CLEAR * put 0 with different literals * because zero is zero, * conversion to binary must return * the same value X=-0E0 ? X,0H+BINTOC(X,'F') AT 20,0H+BINTOC(X,'B') AT 40 && here the bug go away because VFP convert the number to a Integer X=-0.0E0 ? X,0H+BINTOC(X,'F') AT 20,0H+BINTOC(X,'B') AT 40 && BUG 80 is the sign bit X=-0.0E1 ? X,0H+BINTOC(X,'F') AT 20,0H+BINTOC(X,'B') AT 40 && here the bug go away because VFP convert the number to a Integer X=-0.00E1 ? X,0H+BINTOC(X,'F') AT 20,0H+BINTOC(X,'B') AT 40 && BUG 80 is the sign bit * another way * this must return .T. because the conversion of the same value must return the same value ? (-0.0E1 = -0.0E0) = (BINTOC(-0.0E1,"B")==BINTOC(-0.0E0,"B")) * ANOTHER EXAMPLE, INCORRECT INDEX WITH REAL VALUES CREATE CURSOR BBB (AA B,RN I) APPEND BLANK REPLACE AA WITH -0.0E0,RN WITH 1 APPEND BLANK REPLACE AA WITH 0.0E0,RN WITH 2 INDEX ON BINTOC(AA,"F") TAG T1 * EXPECTED : 1,2 OBSERVED : 2,1 BROWSE NORMAL