Hello. First, please stop cross posting. Pick one list and stay with it. Only post on another list if you get no reply for some time.
Aside from that, one can argue if that belongs to the win32 list, but what has this to do with java at all? On Mon 2002-11-18 at 09:07:42 -0800, [EMAIL PROTECTED] wrote: > Say we create a table as follows: > > CREATE TABLE account (id INTEGER, balance DECIMAL(20, 2), col_double > DOUBLE(20,2)); > > And we insert 6 rows as follows: > > INSERT INTO account (id, balance, col_double) VALUES (1, > 12345678901234567890.56, 12345678901234567890.56); > INSERT INTO account (id, balance, col_double) VALUES (2, > 1234567890123456789.56, 1234567890123456789.56); > INSERT INTO account (id, balance, col_double) VALUES (3, > 123456789012345678.56, 123456789012345678.56); > INSERT INTO account (id, balance, col_double) VALUES (4, > 12345678901234567.56, 12345678901234567.56); > INSERT INTO account (id, balance, col_double) VALUES (5, > 1234567890123456.56, 1234567890123456.56); > INSERT INTO account (id, balance, col_double) VALUES (6, 123456789012345.56, > 123456789012345.56); > > We I have from the table by executing a query as follows; > > SELECT * FROM account; > > ResultSet: > ======= > id balance col_double > 1 99999999999999999999.99 12345678901234567000.00 > 2 12345678901234567800.00 12345678901234567800.00 > 3 123456789012345680.00 123456789012345660.00 > 4 12345678901234568.00 12345678901234568.00 > 5 1234567890123456.50 1234567890123456.50 > 6 123456789012345.56 123456789012345.56 <== Only > correct one > > Is this a feature or bug? > > Any comments? Thanks you. Note that double floating point values have only a precision of about 15-16 digits. That explains the behaviour you see with col_double. The behaviour you see with balance is because you use doubles to initialize the column. So the precision is already lost after parsing the insert. Using string constants instead of numbers should work, i.e. INSERT INTO account (balance) VALUES ("12345678901234567890.56") Except, of course, for the row with id=1 where the number is bigger than allowed by DECIMAL(20,2) and therefore set to the max value as explained in the manual. Regards, Benjamin. -- [EMAIL PROTECTED] --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php