Etienne <ejlist-sql...@yahoo.fr> wrote: > Hi Simon, > > Once again, I really do not care of the accuracy. > > I KNOW 0.1 CAN NOT BE STORED EXACTLY IN A REAL VARIABLE. > > I just try to figure out why the SAME CODE (sqlite3 library) with the SAME > INPUT gives DIFFERENT RESULTS (no matter how accurate/exact they individually > are!) when linked to different shells. > > > Etienne
The compiler may not produce strict IEEE-754 floating point computations: trade off between optimizations and strict conformance. Floating registers registers have more bits than double IEEE 754 (80 bit registers, i.e. more accuracy than double 64 bits). So strict conformance to IEEE would be not not only slower but can also be less accurate. Now if you need strict conformance to IEEE-754, you can give options to the compiler. Try compiling with gcc option -ffloat-store for example. There might be other relevant options. Also turn off optimizations (-O0). Some links: http://stackoverflow.com/questions/7295861/enabling-strict-floating-point-mode-in-gcc http://stackoverflow.com/questions/982421/how-to-write-portable-floating-point-arithmetic-in-c/ Regards -- Dominique _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users