I've tracked my rounding problem down to this line in vxprintf():

   while( realvalue>=10.0 && exp<=350 ){ realvalue *= .1; exp++; }

Apparently, on some hardware, sometimes, multiplying a number like '358' by .1 results 
in a number like '35.799999' or thereabouts. Now what's really strange is that it 
doesn't happen every time. If I call vxprintf by hand with '358', I get '3.5800000' 
the first time round that loop. But there is a code path down which I go that causes 
that value to become strange the first time round the loop. On other hardware the 
problem never happens, no matter what code path gets to that line.

This is with SQLite 2.8.15 built with VC 6. If we go back to our old version of 2.8.6, 
then we don't have this kind of problem.

I don't suppose anybody has ever run into something like this before?

Reply via email to