За последние 24 часа нас посетили 229450 программистов и 1731 робот. Сейчас ищут 2307 программистов ...

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

Тема в разделе "PHP для новичков", создана пользователем kiwwwi, 12 апр 2012.

  1. kiwwwi

    kiwwwi Активный пользователь

    С нами с:
    4 сен 2010
    Сообщения:
    66
    Симпатии:
    0
    Добрый день!

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

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

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это просто так оно отображается. там внутрина самом деле буковки нет.
    это значит 1.6 * 10 в минус восьмой степени.
    т.е. 1.6 делить на 100 000 000
    т.е. 0.000000016
     
  3. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Не вижу тут проблем. Обычная экспоненциальная запись числа
     
  4. kiwwwi

    kiwwwi Активный пользователь

    С нами с:
    4 сен 2010
    Сообщения:
    66
    Симпатии:
    0
    Как его вывести в php нормальным числом? (int) ? Т.к. выводится так же как в базе -1.63913e-008
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    оно не может быть нормальным инт потому что значение не целочисленное
     
  6. kiwwwi

    kiwwwi Активный пользователь

    С нами с:
    4 сен 2010
    Сообщения:
    66
    Симпатии:
    0
    тогда как его правильно отобразить через php юзеру, не буду же я показывать -1.63913e-008 :)
     
  7. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    $a=-1.63913e-008;
    $a=$a-($a % 1);
    echo $a;
     
  8. kiwwwi

    kiwwwi Активный пользователь

    С нами с:
    4 сен 2010
    Сообщения:
    66
    Симпатии:
    0
    вывело -1.63913E-8 , т.е. то же самое если я перед выводом переменной поставлю тип (float).
     
  9. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    $a=-1.63913e-008;
    $a=$a[0].$a[1].$a[2].$a[3].$a[4].$a[5].$a[6].$a[7];

    Добавлено спустя 5 минут 55 секунд:
    А вообще, интересно, в каком виде вы хотите вывести это число?
    -0.0000000163913?
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  11. kiwwwi

    kiwwwi Активный пользователь

    С нами с:
    4 сен 2010
    Сообщения:
    66
    Симпатии:
    0