In Visual C, a "long double" and a "double" are the same, and only offer 53 bits of precision. On GCC, a "long double" has 80 bits of precision. Unfortunately, I don't think there's a way to have Visual C use more precision. Because of this, round off error will always differ between the two compilers when using the "long double" type.
-Shane On Mon, Nov 29, 2010 at 10:06 PM, Rick Regan <exploringbin...@gmail.com> wrote: > On Mon, Nov 29, 2010 at 3:04 PM, Rick Regan <exploringbin...@gmail.com>wrote: > > >> So the question remains -- why does the Windows build get it wrong? >> > > > I think I figured it out. It is due to the use of extended precision. In > sqlite3.c, if you change "#define LONGDOUBLE_TYPE long double" to "#define > LONGDOUBLE_TYPE double" and set the FPU precision to 53 bits, you get the > same wrong result as on Windows. > > Obviously, we don't want the same wrong result as on Windows -- so how do we > fix Windows? > > What's the procedure for opening a bug report? > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users