C 또는 Python과 같은 언어에서 정수를 정수로 나누면 정수를 얻습니다.
>>> 8/3
2
그러나 PHP에서 정수를 다른 정수로 나누면 /
때때로 부동 소수점을 얻습니다.
php > var_dump(6/3);
int(2)
php > var_dump(8/3);
float(2.6666666666667)
8/3이 2가되도록 Python이나 C와 같이 나누고 싶습니다. PHP에서 어떻게 할 수 있습니까?
답변
답변
답변
PHP에는 정수 나누기 연산자가 없습니다. 1/2은 float 0.5를 산출합니다. 값을 정수로 캐스트하여 아래쪽으로 반올림하거나 round () 함수를 사용하여 반올림을 더 세밀하게 제어 할 수 있습니다.
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7)); // float(4)
답변
이것을 사용하십시오 ….
intval(1700000 / 300000 )...
이것은 정수 값을 반환합니다.
답변
(int)(1700000 / 300000);
유형 캐스팅을 사용하십시오.
답변
PHP에서 정수 나누기를 수행하는 방법에는 여러 가지가 있습니다. 언어에는 정수 나눗셈을위한 연산자가 없지만 부동 소수점 몫을 정수로 반올림하는 몇 가지 옵션이 있습니다.
<?php
$pos = 1;
$neg = -1;
$divisor = 2;
// No rounding (float division)
var_dump($pos / $divisor); // 0.5 (float)
var_dump($neg / $divisor); // -0.5 (float)
// Round toward zero (like C integer division)
var_dump((int)($pos / $divisor)); // 0 (int)
var_dump((int)($neg / $divisor)); // 0 (int)
// Round half away from zero
var_dump(round($pos / $divisor)); // 1 (float)
var_dump(round($neg / $divisor)); // -1 (float)
// Round down
var_dump(floor($pos / $divisor)); // 0 (float)
var_dump(floor($neg / $divisor)); // -1 (float)
# And on PHP 7 you can round toward zero with intdiv():
var_dump(intdiv($pos, $divisor)); // 0 (int)
var_dump(intdiv($neg, $divisor)); // 0 (int) Rounded toward zero
PHP 7에서는 intdiv($p, $q)
정수 나누기를 직접 수행 하는 데 사용할 수 있습니다 . 이것은 (int)($p / $q)
PHP 5 와 동일합니다 .
답변
끝에 | 0을 추가하여 축약 형을 사용할 수 있습니다.
8/3 | 0