#1
  1. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2000
    Posts
    2
    Rep Power
    0
    mysql> create table den(sayi float(10,5))
    -> ;
    Query OK, 0 rows affected (0.00 sec)

    mysql> insert into den values(617981000);
    Query OK, 1 row affected (0.01 sec)

    mysql> select * from den;
    +-----------------+
    | sayi |
    +-----------------+
    | 617980992.00000 |
    +-----------------+
    1 row in set (0.00 sec)

    mysql> insert into den values(617981000.0);
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from den;
    +-----------------+
    | sayi |
    +-----------------+
    | 617980992.00000 |
    | 617980992.00000 |
    +-----------------+
    2 rows in set (0.00 sec)

    What is this?What is the problem..
    I want insert 617981000 value but it inserted 617980992...
    ?????
  2. #2
  3. No Profile Picture
    Apprentice Deity
    Devshed Loyal (3000 - 3499 posts)

    Join Date
    Jul 1999
    Location
    Niagara Falls (On the wrong side of the gorge)
    Posts
    3,237
    Rep Power
    19
    I'm surprised it's inserting at all, given that you are inserting a value outside of the range defined.
  4. #3
  5. No Profile Picture
    Junior Member
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2000
    Posts
    2
    Rep Power
    0
    No out of the range.the field for float 10,5
    i inserted float 9.
    please look again..!
  6. #4
  7. No Profile Picture
    Apprentice Deity
    Devshed Loyal (3000 - 3499 posts)

    Join Date
    Jul 1999
    Location
    Niagara Falls (On the wrong side of the gorge)
    Posts
    3,237
    Rep Power
    19
    No, it IS out of range. I suggest you read the manual so you understand what your definition means.

    float(10,5) does NOT mean 10 digits before the decimal and 5 after. It means total display size of 10 with 5 digits in the decimal. AND the decimal character COUNTS as one of the display characters. To do what you want you'll need to define the field as:

    float (16,5)

    which will give you 10 real digits, the decimal character, and the 5 decimal digits.

    I misspoke when I said I was surprised it was inserting. As long as the value is in a legal float range it will insert, but your display definition of float (10,5) is not allowing it to display correctly when selected.
  8. #5
  9. Banned (not really)
    Devshed Supreme Being (6500+ posts)

    Join Date
    Dec 1999
    Location
    Brussels, Belgium
    Posts
    14,642
    Rep Power
    4476
    Also,

    float values aren't exactly correct, they are rounded based on your precision. So that is probably what your're experiencing.

    617981000 is about equal to 617980992.00000 based on the float(10,5) definetion.

    change it to float(16,5) like rod k said...

    ---John Holmes...

IMN logo majestic logo threadwatch logo seochat tools logo