Where can we find the info regardng on the DOUBLE precision
15 or 16? I searched the doc. and unable to locate it.
JDBC mm.mysql-2.0.14-bin.jar + MySQL v3.23.52-MAX on WinNT.
Regards,
Pae
> > 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.
>
I searched the MySQL docuementation and unable to locate the info
you mentioned above. Would you provide the specific info to locate
it.
> 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.
>
I can see this part if the double uses the precision 15.
> 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