mysql тип поля float принимает странное значение

Тема в разделе "Базы данных", создана пользователем rasandrey, 12 апр 2012.

Модераторы: latteo
  1. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    Добрый день!

    Есть таблица в БД, поле имеет тип float. Часто поле принимает странное значение, например, -1.63913e-008

    С чем это может быть связано и как решить проблему?
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    это нормальное значение для float полей
    http://ru.wikipedia.org/wiki/Число_с_плавающей_запятой
    =>
    В вычислительных машинах показатель степени принято отделять от мантиссы буквой «E» (exponent). Например, число 1,528535047·10−25 в большинстве языков программирования высокого уровня записывается как 1.528535047E-25.
     
  3. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    как его можно вывести в php нормальным значением?
     
  4. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    поменяйте в таблице базы (я так понимаю mysql) float на decimal
     
    rasandrey нравится это.
  5. juggernaut13

    juggernaut13 Постоялец

    Регистр.:
    23 авг 2009
    Сообщения:
    59
    Симпатии:
    16
    можно не менять, а писать в запросах
    Код:
    SELECT CAST(поле AS DECIMAL) FROM table
    смотря для чего float в базе юзается
     
  6. casinolot

    casinolot

    Регистр.:
    22 окт 2010
    Сообщения:
    548
    Симпатии:
    84
    а какая разница всё равно mysql такие данные хранит как float, хочешь пиши хочешь не пиши.