> > The problem is: the "real" rounding error depends here on the shell (SQLite > > or JSDB) calling the SQLite library.
> Yes. Different languages use different ways to hide the fact that they can't > hide the 0.1. The difference of languages is irrelevant here. Both shells call "SQLITE_API const unsigned char *sqlite3_column_text()". The returned string is not modified nor (re)converted by JSDB in any way. Inputs are proven to be identical, so are compiler options. > There's nothing you can do about this. I have already fixed this issue - without figuring out what is exactly the problem. I just do not want to patch every future SQLite release. >>>> R:\>sqlite NUL "select 99990.1;" >>>> 99990.1 >>>> >>>> >>>> JSDB (www.jsdb.org) output: >>>> >>>> js>var db = new SQLite(); >>>> js>db.exec("select 99990.1", function(r){writeln(r)}); >>>> 99990.1=99990.1000000001 >>>> true > You are not doing the same thing both times. One time you are writing the > result using SQLite. The other time you are writing the result using a > 'writeln()' command. There is no 'writeln()' command in SQLite. THE PROBLEM OCCURS AT SQLITE LEVEL! The caller does not matter. Behaviors diverge from sqlite3(071300).c: line 19911 (var "realvalue") very precisely. Regards, Etienne _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users