не пойму что не так то? float это int со знаками после запятой. точнее int частный случай float и если в функции жестко указаны типы то все правильно.
Есть варианты лучше? Понятно что в книге не всё хорошо разжёвано, так что приходиться искать дополнительно информацию
Рассуждения человека, который не знает, как работает машина на низком уровне. То, почему я советую хотя бы чуток всем новичка потрогать Си.. Соль в том, что float и int это совершенно разные типы данных, с разной емкостью, с разной моделью хранения, с разным принципом обработки и чтения из памяти, с разной механикой арифметических операций, занимающие разное количество байт в памяти (по дефолту). То, что для тебя они выглядят как циферки с запятой или циферки без запятой не делает их похожими.
Тем не менее C++ поступает в этой ситуации аналогично - обрезает дробную часть --- Добавлено --- Это я про
фелл как всегда в своем репертуаре. речь идет про приведение типов, а не про аспекты хранения разных типов. если что я еще перфокарты видел в живую
Что ж ты такой непонятливый... В объявлении функции все параметры указаны как целые числа, поэтому при вызове вещественные преобразуются в целые путём отсекания дробной части. Т.е. из 2.5 становится 2.
А это особенности хранения вещественных чисел в памяти. Надо просто знать, что может так получиться. Связано с тем, что компьютер хранит их в двоичной, а не десятичной системе, и те дроби, которые конечны в десятичной системе, могут быть бесконечными в двоичной. Поэтому там, где это особо важно (например, при расчётах банковских операций), тип float не используются, используются другие методы.
Этот пример в документации прекрасно описан с пояснениями: https://secure.php.net/manual/ru/language.types.float.php
Я тебе в той теме про числа давал тебе ссылку на доку про типы. Если бы ты ее прочел, то ты бы знал все. Но нахер тебе читать, ведь лучше каждый раз создавать тему на форуме....
Это называется "неявное преобразование". Ты обрати внимание на буковки "int".Это от английского Integer - целое число.
PHP: <?php ## Локальные переменные. function silly() { $i = mt_rand(); // записывает в $i случайное число echo "$i<br />"; // выводит его на экран // Эта $i не имеет к глобальной $i никакого отношения! } // Выводит в цикле 10 случайных чисел. for ($i = 0; $i != 10; $i++) silly(); echo PHP_OS; ?> вывелось Код (Text): 1242196326 1935339356 1375599740 1973729764 1081237598 1666730013 695980527 1311631384 572672605 1299279437 WINNT
Давай методом исключения,как ты думаешь что у тебя в коде может выводить информация об ОС,что тут впринципе может быть лишним,как думаешь?
https://secure.php.net/manual/ru/reserved.constants.php Да,ты выводишь предопределенную константу,в которой лежит строка с названием ОС
PHP: <?php ## Функция для вывода содержимого переменной. // Распечатывает дамп переменной на экран. function dumper($obj) { echo "<pre>", htmlspecialchars(dumperGet($obj)), "</pre>"; } // Возвращает строку - дамп значения переменной в древовидной форме // (если это массив или объект). В переменной $leftSp хранится // строка с пробелами, которая будет выводиться слева от текста. function dumperGet(&$obj, $leftSp = "") { if (is_array($obj)) { $type = "Array[".count($obj)."]"; } elseif (is_object($obj)) { $type = "Object"; } elseif (gettype($obj) == "boolean") { return $obj? "true" : "false"; } else { return "\"$obj\""; } $buf = $type; $leftSp .= " "; for (Reset($obj); list($k, $v) = each($obj); ) { if ($k === "GLOBALS") continue; $buf .= "\n$leftSp$k => ".dumperGet($v, $leftSp); } return $buf; } ?> --- Добавлено --- все нашел вывелось