> > 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
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users