Hello,

i found out that SQLite is having problems with converting high numbers from 
string to double, located in the function "sqlite3AtoF":

Below is a table of input strings, and the returned double values, tested on 
Windows 7 64 bit with SQLite version 3.23.1:

Input String:                              Converted Result
1.7976931348623152e+308                    1.7976931348623153e+308
1.7976931348623154e+308                    1.7976931348623157e+308
1.7976931348623155e+308                    1.7976931348623157e+308
1.7976931348623156e+308                    1.7976931348623157e+308
1.7976931348623157e+308                    INF
1.7976931348623158e+308                    INF

Originally the behavior was discovered when executing a select statement with a 
comparison of the DBL_MAX Value (1.7976931348623158e+308 ):

/*
Entry in Table:
Id         Value
1          1.1754943508222878e-38
*/
select  id, value from table
inner join
(
select 1 as Id, 1.1754943508222878e-38 as Value
) table2
on table.id = table2.id
where table.Value < (table2.Value - 2.22045e-16) or table.Value > (table2.Value 
+ 2.22045e-16)


รจ  This query would return 1 record, although there is a value with the exact 
same value inside the database ( executed with the sqlite c++ api without usage 
of prepared parameters)

Kind regards
Roman Stiefsohn
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to