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. kiwwwi - 04 Сентября, 2010 - 19:07:12 - перейти к сообщению
В ообщем мне смеяться хочется Улыбка , но не знаю как в результате получить число 9999999999999991 в таком коде:
PHP:
скопировать код в буфер обмена
  1.  
  2. $k = 9999999999999990 ;
  3. $k++ ;
  4. echo $k ;
  5.  


Вопрос - как ? Закатив глазки
2. Champion - 04 Сентября, 2010 - 20:17:00 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. $k = 9999999999999990. ;
  2. $k+=1;
  3. echo number_format($k,5) ;


Вот так например. Но результат может удивить: 9999999999999992.00000 (на 64 разрядной системе)
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $k = 9999999999999990. ;
  3. $k+=2; //9999999999999992.00000
  4. // $k+=7; //9999999999999996.00000
  5. echo number_format($k,5) ;
Тип double вмещает сколько-то там значащих цифр (видимо меньше, чем тут), а дальше длинная история про то, как хранятся данные в памяти.
3. kiwwwi - 04 Сентября, 2010 - 20:37:34 - перейти к сообщению
нашел такую функцию как sprintf('%.0f', $k) - результат тот, что мне нужно Улыбка
4. duk - 04 Сентября, 2010 - 21:03:55 - перейти к сообщению
для больших чисел хорошо подходит библиотека gmp
5. JustUserR - 05 Сентября, 2010 - 12:51:36 - перейти к сообщению
kiwwwi Для работы с большими целыми числами имеет смысл использовать их представление в виде строк для значений констант в исходном коде и реализации внешнего вывода - и массивов для внутреннего сохранения и выполнения арифметических операций над ними В таком случае работы с целыми числами не будет зависеть от текущей архитектуры - и они могут иметь любое произвольное число разрядов которое зависит только от количества доступной памяти для PHP-скрипта Для создания указанной формы хранения больших целых чисел необходимо реализовать в программном виде основные арифметические операции - это делается исходя из их фактического определения и поразрядного выполнения дейтсвий с числами

 

Powered by ExBB FM 1.0 RC1