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]   

> Без описания
CTAPu4OK
Отправлено: 11 Декабря, 2010 - 18:50:58
Post Id



Гость


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


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




Есть код
PHP:
скопировать код в буфер обмена
  1. $b=15;
  2. $i=0;
  3. while ($i++<110) {
  4.     echo $i.'. '.ceil($b).'<br />';
  5.     $a=1.5;
  6.     $b=$b*$a;
  7. }

до 62-го пункта он выводит нормально, дальше начинает приобразовывать его в другой тип
1.2409358192E+12

Тут есть 2 вопроса.
Как называется этот тип числа и как его сменить на нормальный ?
 
 Top
OrmaJever Модератор
Отправлено: 11 Декабря, 2010 - 19:01:27
Post Id



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


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


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




1.24 - float
34244 - int
Чтобы назначить тип переменой нужно поставить тип в скобках перед ней
PHP:
скопировать код в буфер обмена
  1. $num = '123';
  2. var_dump($num);
  3. $num = (int)$num;
  4. var_dump($num);
  5.  

(Добавление)
хотя для таких случав есть полезные функции inval(), strval() ...

(Отредактировано автором: 11 Декабря, 2010 - 19:02:16)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
CTAPu4OK
Отправлено: 11 Декабря, 2010 - 19:28:09
Post Id



Гость


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


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




OrmaJever пишет:
1.24 - float
34244 - int
Чтобы назначить тип переменой нужно поставить тип в скобках перед ней
PHP:
скопировать код в буфер обмена
  1. $num = '123';
  2. var_dump($num);
  3. $num = (int)$num;
  4. var_dump($num);
  5.  

(Добавление)
хотя для таких случав есть полезные функции inval(), strval() ...

Не то и не другое не работает =(
Мне нужно не приобразовать строку в число а изменить тип вывода данных, т.е.
1.2409358192E+12 это 827290546131 умноженное на 2, нужно что бы выводилось
не 1.2409358192E+12 a 1654581092262, хоть убейте, целый день провозился, не могу решить :\
Как 1.2409358192E+12 вот такой вот тип данных называется ?)
 
 Top
OrmaJever Модератор
Отправлено: 11 Декабря, 2010 - 19:34:00
Post Id



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


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


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




CTAPu4OK пишет:
Как 1.2409358192E+12 вот такой вот тип данных называется ?)

вот конкретно такой называется string. Это просто строка.
Что делает E в конце первого числа?
(Добавление)
хмм ну просто число слишком большое. При проходе каждого цыкла переменая $b становится всё больше. это так и нужно?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Ch_chov
Отправлено: 11 Декабря, 2010 - 19:48:29
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




ini_set('precision', 21);
 
 Top
CTAPu4OK
Отправлено: 11 Декабря, 2010 - 19:53:59
Post Id



Гость


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


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




OrmaJever пишет:
хмм ну просто число слишком большое. При проходе каждого цыкла переменая $b становится всё больше. это так и нужно?

Да, это так и нужно =)

Ch_chov пишет:
ini_set('precision', 21);

Огромное спасибо =)
 
 Top
JustUserR
Отправлено: 11 Декабря, 2010 - 20:57:48
Post Id



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


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


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




CTAPu4OK Для осуществления вывода числового значения с плавающей точной с осуществление спецификации количесва значащих разрядок и формы вывода в конкретной операции PHP-скрипта - целесообразно использование функции форматированного вывода http://php.su/functions/?printf - или http://php.su/functions/?sprintf в случае необходимости осуществления последующего представления числового объекта в строковом виде и выполнения операций с ними


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB