Casting — Как работает механизм приведения типов в PHP при делении чисел разных типов?

У меня следующий фрагмент кода:

<!DOCTYPE html>
<html>
<body>

<?php
$x = 10;
$y = 6;

echo $x / $y;
?>

</body>
</html>

Выход вышеуказанной программы 1.6666666666667

Я ожидал, что результат будет 1 (то есть целочисленное значение) как я делю два целочисленных значения. Но я удивился, увидев, что результат, который я получил, десятичная дробь.

Может кто-нибудь объяснить, пожалуйста, простым, понятным и простым для понимания языком, почему я получил значение десятичной дроби как вывод в вышеприведенной программе?

То есть, как работает приведение типов в вышеуказанной программе?

Также объясните механизм приведения типов, когда делится две дроби или одна дробь и одно целое число с примерами рабочего кода.

Кроме того, дайте мне знать, нужно ли приведение типов к значению дроби только в случае деления или в других арифметических операциях (например, сложение, вычитание и умножение). Если да, то как это работает? Если нет, какова действительная причина этого?

Благодарю вас.

-1

Решение

К сожалению, это немного мутно в PHP — дело не только в операторе или операнде. Согласно инструкции:

Оператор деления («/») возвращает значение с плавающей запятой, если только два операнда не являются целыми числами (или строками, которые преобразуются в целые числа), а числа делятся равномерно, и в этом случае будет возвращено целочисленное значение. Для целочисленного деления смотрите intdiv ().

Таким образом, вы получите float назад, если оба операнда не являются целыми числами а также они точно делятся.

<?php
var_dump(10 / 5);
var_dump(10.0 / 5.0);
var_dump(10 / 4);

int(2)
float(2)
float(2.5)
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector