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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сложение больших чисел

 PHP.SU

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


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

> Без описания
kiwwwi
Отправлено: 04 Сентября, 2010 - 19:07:12
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




В ообщем мне смеяться хочется Улыбка , но не знаю как в результате получить число 9999999999999991 в таком коде:
PHP:
скопировать код в буфер обмена
  1.  
  2. $k = 9999999999999990 ;
  3. $k++ ;
  4. echo $k ;
  5.  


Вопрос - как ? Закатив глазки
 
 Top
Champion Супермодератор
Отправлено: 04 Сентября, 2010 - 20:17:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




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 вмещает сколько-то там значащих цифр (видимо меньше, чем тут), а дальше длинная история про то, как хранятся данные в памяти.
 
 Top
kiwwwi
Отправлено: 04 Сентября, 2010 - 20:37:34
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




нашел такую функцию как sprintf('%.0f', $k) - результат тот, что мне нужно Улыбка
 
 Top
duk
Отправлено: 04 Сентября, 2010 - 21:03:55
Post Id



Частый гость


Покинул форум
Сообщений всего: 208
Дата рег-ции: Февр. 2010  
Откуда: Москва


Помог: 3 раз(а)




для больших чисел хорошо подходит библиотека gmp
 
 Top
JustUserR
Отправлено: 05 Сентября, 2010 - 12:51:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




kiwwwi Для работы с большими целыми числами имеет смысл использовать их представление в виде строк для значений констант в исходном коде и реализации внешнего вывода - и массивов для внутреннего сохранения и выполнения арифметических операций над ними В таком случае работы с целыми числами не будет зависеть от текущей архитектуры - и они могут иметь любое произвольное число разрядов которое зависит только от количества доступной памяти для PHP-скрипта Для создания указанной формы хранения больших целых чисел необходимо реализовать в программном виде основные арифметические операции - это делается исходя из их фактического определения и поразрядного выполнения дейтсвий с числами


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB