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 :: Integer не работает с вычитанием, умножением и делением.

 PHP.SU

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


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

> Без описания
Oleh
Отправлено: 09 Августа, 2011 - 01:54:52
Post Id


Новичок


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


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




Прохожу в книге тему "математические операторы". Делаю всё подряд, что написано.
Наткнулся на ситуацию, когда преобразование в целое число не сработало, если оператор преобразования (int) поставить перед операцией вычитания, умножения и деления, а если поставить перед операцией сложения, то работает.
В книге эта ситуация не описана. Вот я и думаю, может это я что-то не так пишу ?

Сложение. Всё работает как я и хотел.

<?
$s1=5.3;
$s2=3;
$s3=(int)$s1+$s2;
print $s3."<p>";
?>

Вычитание, умножение и деление. Приходится сначала присваивать переменным №3 результат соответствующей операции ($j3=$j1-$j2;), а уже потом значения этих переменных №3 преобразовывать (int) и присваивать переменным №4, чтобы выводимый результат округлялся.

<?
$j1=5;
$j2=2.7;
$j3=(int)$j1-$j2;
$j4=(int)$j3;
print $j3."<br>";
print $j4."<p>";

$k1=2;
$k2=2.7;
$k3=(int)$k1*$k2;
$k4=(int)$k3;
print $k3."<br>";
print $k4."<p>";

$d1=5;
$d2=2;
$d3=(int)$d1/$d2;
$d4=(int)$d3;
print $d3."<br>";
print $d4."<br>";
$f=$d1%$d2;
print $f."<p>";
?>

Вообще всё началось с того, что я вывел результат деления (5:2=2.5) и остаток (1).
Я так понял, что остаток выводят в случае необходимости получения в результате деления целого числа, а не вещественного.
 
 Top
Ezi
Отправлено: 09 Августа, 2011 - 02:28:46
Post Id



Частый гость


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


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




эм... Остаток это, как бы верно выразиться, число оставшееся при делении, покажу на примере, 10/2=5 10%2=0 10/3=3.33... 10%3=1 не обязательно чтобы получить остаток должно второе число быть в периоде, вообщем если не поняли вспомните 3й класс когда делили столбикомУлыбка


-----
Хочешь жить - умей вертеться
 
 Top
iflight
Отправлено: 09 Августа, 2011 - 16:02:29
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


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




Oleh А вы скобки не пробовали юзать? Улыбка Приоритет операций то учитывайте
Смотрите:
сначала приводите к целому, потом складываете 5+3, создается впечатление что сначала складывается 5.3+3, затем приводится к целому.
PHP:
скопировать код в буфер обмена
  1. <?
  2. $s1=5.3;
  3. $s2=3;
  4. $s3=(int)$s1+$s2;
  5. print $s3."<p>";
  6. ?>

PHP:
скопировать код в буфер обмена
  1. $j1=5;
  2. $j2=2.7;
  3. $j3=(int)$j1-$j2;
  4. $j4=(int)$j3;
  5. print $j3."<br>";
  6. print $j4."<p>";

Вы приводите к целому $j1, а затем вычитаете из него дробное число...
 
 Top
gogita
Отправлено: 05 Сентября, 2011 - 09:28:33
Post Id


Новичок


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


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




При умножении получаем 1000000 * 1000000 = 1.0E+12, т.е. научное выражение.
Как увеличить диапазон научной выражений т.е. при умножении 1000000 * 1000000 получить 1000000000000, он не то ерунду?
(Добавление)
В javascript это диапазон гораздо больше.
 
 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