За последние 24 часа нас посетили 17469 программистов и 1921 робот. Сейчас ищут 1108 программистов ...

PHP 0.2+0.1 Как работают float?

Тема в разделе "PHP для новичков", создана пользователем glorsh66, 28 май 2018.

  1. glorsh66

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

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    Почему в PHP при операции - 0.2+0.1 выдается 0.3
    а не 0.3000000000000000000004 (или сколько там)?
    Есть какая то оптимизация? И какие ограничения в этой оптимизации. Т.е. какие потери точности
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.593
    Симпатии:
    1.764
    В php float двойной точности, насколько помню. В C тоже будет 0.3 без мусора, а интерпретатор PHP написан на C.
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    ini_set('precision', xxxxxxxxxxxxxxxxx);
     
  4. glorsh66

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

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    Это типа максимальную длину мантиссы устанавливает?
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    ini_set('precision', 14); = 14 чисел после запятой
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.593
    Симпатии:
    1.764
    Всё равно, там где нужны сверхточные вычисления, float использовать нельзя, а надо использовать bcmath.