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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
sterwart
Отправлено: 01 Октября, 2012 - 22:47:04
Post Id



Гость


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


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




например делю 900000000000000000000 на 2 получается что то вроде
4.5E+24
а должно получится типа 4500000000000000000000000
как получить такое число ? А?!
 
 Top
vanicon
Отправлено: 01 Октября, 2012 - 22:52:43
Post Id



Частый посетитель


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


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




, http://php.su/functions/?cat=bc


-----
Так было, так есть и так будет
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Октября, 2012 - 23:09:05
Post Id



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


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


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




vanicon пишет:
bcdiv(900000000000000000000,2)

И каков результат ?)
(Добавление)
Поправочка:
 
 Top
sterwart
Отправлено: 01 Октября, 2012 - 23:30:35
Post Id



Гость


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


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




bcdiv делит без остатка, мне с остатком надо..
 
 Top
Okula
Отправлено: 01 Октября, 2012 - 23:34:35
Post Id



Участник


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


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




sterwart, тебе как бы сам язык намекает 4.5E+24
Если перевести на математический язык:
4.5E+24 эквивалентно 4.5 * 10^24 = 4500000000000000000000000
(Добавление)
sterwart пишет:
bcdiv делит без остатка, мне с остатком надо..

Остаток от деления - оператор %
PHP:
скопировать код в буфер обмена
  1. var_dump(900000000000000000000%2); // остаток 0
 
 Top
vanicon
Отправлено: 02 Октября, 2012 - 01:24:56
Post Id



Частый посетитель


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


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




Цитата:
Остаток от деления - оператор %

Думаю что sterwart имел ввиду не сам остаток, а что бы делилось с остатком.
Но 900000000000000000000 на цело разделится на 2, поэтому остатка и нет.
0.66, 3 параметр функции bcdiv - кол-во цифр после запятой.

(Отредактировано автором: 02 Октября, 2012 - 01:25:41)



-----
Так было, так есть и так будет
 
 Top
sterwart
Отправлено: 02 Октября, 2012 - 18:40:09
Post Id



Гость


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


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




мне надо например 1231231231231231231237 /2 должно получится с остатком.. тоесть
****523.38182 типа так
 
 Top
AlexAnder
Отправлено: 02 Октября, 2012 - 18:46:59
Post Id



Частый посетитель


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


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




sterwart пишет:
мне надо например 1231231231231231231237 /2 должно получится с остатком.. тоесть
****523.38182 типа так

вики пишет:
Остаток — один из результатов операции деления с остатком. Образуется, если результат деления не может быть выражен целым числом, при этом остаток от деления должен быть меньше делителя. В случае, если числа делятся друг на друга без остатка, или нацело, то считают, что остаток равен нулю. Термин применяется также при делении

Хм
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $omg = '900000000000000000000';
  2. echo bcdiv($omg,'2'); //450000000000000000000

(Отредактировано автором: 02 Октября, 2012 - 18:55:31)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
IllusionMH
Отправлено: 02 Октября, 2012 - 19:00:26
Post Id



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


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


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




sterwart, читаем внимательно ответ выше
vanicon пишет:
3 параметр функции bcdiv - кол-во цифр после запятой.
 
 Top
sterwart
Отправлено: 02 Октября, 2012 - 19:17:32
Post Id



Гость


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


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




PHP:
скопировать код в буфер обмена
  1. c("memo1")->text = '';
  2. $x= c("edit1")->text;
  3. while(true){
  4. if($x<=0){
  5. c("memo1")->text= strrev($str);
  6. return;
  7. }
  8. $ex = explode('.',bcdiv($x,2,1));
  9. if($ex[1] != ''){
  10. $ost = 1;
  11. }else{
  12. $ost = 0;
  13. }
  14. $x = $ex[0];
  15. $str.=$ost;
  16. }



в 8 строчке функция bcdiv , это код перевода десятичного числа в двоичную, почему то выдает 1111111111, и если заменить bcdiv на знак деления(/) то выдает все норм, то есть 101010001101..
(Добавление)
не обращайте внимания на c("memo ... пишу в студии под win32
 
 Top
IllusionMH
Отправлено: 02 Октября, 2012 - 19:28:49
Post Id



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


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


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




sterwart, а чего вы с пустой строкой сравниваете?
PHP:
скопировать код в буфер обмена
  1. $omg = '900000000000000000000';
  2. echo bcdiv($omg,'2', 1); //450000000000000000000.0

как минимум нужно сравнивать с 0
 
 Top
sterwart
Отправлено: 02 Октября, 2012 - 19:37:03
Post Id



Гость


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


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




сложно объяснить Голливудская улыбка писал 4 дня назад, все работает, но как только заменяю $x/2 на bcdiv
, выдает 1111111111
 
 Top
Okula
Отправлено: 02 Октября, 2012 - 19:37:18
Post Id



Участник


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


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




Да, это тоже самое что и сравнивать число 15 со словом "Привет", смысла нет.
 
 Top
sterwart
Отправлено: 02 Октября, 2012 - 19:39:14
Post Id



Гость


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


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




про какое сравнение то вы говорите ? не пойму.
 
 Top
IllusionMH
Отправлено: 02 Октября, 2012 - 19:52:57
Post Id



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


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


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




sterwart, после точки всегда будет одна цифра, так что сравнение в 9 строке неверно

как минимум


P.S. А реально нужны ну оооочень большие числа? Обычными операциями целочисленного деления и никак не обойтись?
Есть же стандартные функции перевода decbin base_convert
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB