PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
твой Иисус Отправлено: 21 Апреля, 2017 - 13:52:55 • Тема: Познание ОГРОМНЫХ чисел с плавающей точкой • Форум: Вопросы новичков

Ответов: 4
Просмотров: 209
Мелкий пишет:
твой Иисус пишет:
что бы сохранить точность.

ieee754 и точность взаимоисключающие вещи по своему определению.

Для точной математики в php есть пара библиотек http://php.net/manual/en/refs.math.php

Спасибо, попробую разобраться.
P.S я аж воспылал.
твой Иисус Отправлено: 20 Апреля, 2017 - 21:59:20 • Тема: Познание ОГРОМНЫХ чисел с плавающей точкой • Форум: Вопросы новичков

Ответов: 4
Просмотров: 209
OrmaJever пишет:
даю 95% что вы не правильно решаете задачу, такие огромные числа не нужны. Опишите задачу, тогда видно будет

Особой задачи нет, так как конечный результат считаю невозможным. Для меня это практика. (учу пхп пару дней). Ну а точность нужна для того что бы сохранять sha256, точной строки.
твой Иисус Отправлено: 20 Апреля, 2017 - 21:24:17 • Тема: Познание ОГРОМНЫХ чисел с плавающей точкой • Форум: Вопросы новичков

Ответов: 4
Просмотров: 209
Доброго времени суток.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $i = 0.044444444444411116012848124172;
  5. echo $i; // 0.044444444444411
  6.  


Тип float не может быть больше 15 символов после точки.
Но если переменную $i задать как строку:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $i = '0.044444444444411116012848124172';
  5. echo $i; // 0.044444444444411116012848124172
  6.  


Далее вопрос. Как заставить работать такую конструкцию, что бы сохранить точность. Пробовал разные способы например sprintf('%.30f', $i); но ничего не получилось.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $i = 0.044444444444411116012848124172;
  5. do {
  6.    $i = $i + 0.000000000000000000000000000001;
  7.    echo $i;
  8. } while ($i < 0.044444444444411116012848124283);
  9.  

Заранее спасибо.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB