Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Познание ОГРОМНЫХ чисел с плавающей точкой
Форумы портала PHP.SU » » Вопросы новичков » Познание ОГРОМНЫХ чисел с плавающей точкой

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

1. твой Иисус - 20 Апреля, 2017 - 21:24:17 - перейти к сообщению
Доброго времени суток.
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.  

Заранее спасибо.
2. OrmaJever - 20 Апреля, 2017 - 21:46:54 - перейти к сообщению
даю 95% что вы не правильно решаете задачу, такие огромные числа не нужны. Опишите задачу, тогда видно будет
3. твой Иисус - 20 Апреля, 2017 - 21:59:20 - перейти к сообщению
OrmaJever пишет:
даю 95% что вы не правильно решаете задачу, такие огромные числа не нужны. Опишите задачу, тогда видно будет

Особой задачи нет, так как конечный результат считаю невозможным. Для меня это практика. (учу пхп пару дней). Ну а точность нужна для того что бы сохранять sha256, точной строки.
4. Мелкий - 21 Апреля, 2017 - 11:33:18 - перейти к сообщению
твой Иисус пишет:
что бы сохранить точность.

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

Для точной математики в php есть пара библиотек http://php.net/manual/en/refs.math.php
5. твой Иисус - 21 Апреля, 2017 - 13:52:55 - перейти к сообщению
Мелкий пишет:
твой Иисус пишет:
что бы сохранить точность.

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

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

Спасибо, попробую разобраться.
P.S я аж воспылал.

 

Powered by ExBB FM 1.0 RC1