development

정수를 나누고 정수 값 얻기

big-blog 2020. 11. 6. 21:01
반응형

정수를 나누고 정수 값 얻기


C 또는 Python과 같은 언어에서 정수를 정수로 나누면 정수를 얻습니다.

>>> 8/3
2

그러나 PHP에서 정수를 다른 정수로 나누면 /때때로 부동 소수점을 얻습니다.

php > var_dump(6/3);
int(2)
php > var_dump(8/3);
float(2.6666666666667)

8/3이 2가되도록 파이썬이나 C처럼 나누기를하고 싶습니다. PHP에서 어떻게 할 수 있습니까?


round()정수 반올림 값을 얻으려면 함수를 사용하십시오 .

round(8 / 3); // 3

또는

floor()함수를 사용 하여 정수 값 얻기

floor(8 / 3); // 2

PHP 7에는 원하는 것을 정확히 수행하는 intdiv 함수가 있습니다.

용법:

intdiv(8, 3);

를 반환 2합니다.


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)     

PhP 매뉴얼


이것을 사용하십시오 ....

intval(1700000 / 300000 )...

이것은 정수 값을 반환합니다.


(int)(1700000 / 300000);

유형 캐스팅을 사용하십시오.


끝에 | 0을 추가하여 축약 형을 사용할 수 있습니다.

8/3 | 0


PHP에서 정수 나누기를 수행하는 방법에는 여러 가지가 있습니다. 이 언어에는 정수 나눗셈을위한 연산자가 없지만 부동 소수점 몫을 정수로 반올림하는 몇 가지 옵션이 있습니다.

<?php
$pos = 1;
$neg = -1;
$divisor = 2;

// No rounding (float division)
var_dump($pos / $divisor);          //  0.5
var_dump($neg / $divisor);          // -0.5

// Round toward zero (like C integer division)
var_dump((int)($pos / $divisor));   //  0
var_dump((int)($neg / $divisor));   //  0

// Round half away from zero
var_dump(round($pos / $divisor));   //  1
var_dump(round($neg / $divisor));   // -1

// Round down
var_dump(floor($pos / $divisor));   //  0
var_dump(floor($neg / $divisor));   // -1

# And on PHP 7 you can round toward zero with intdiv():
var_dump(intdiv($pos, $divisor));   //  0
var_dump(intdiv($neg, $divisor));   //  0   Round toward zero

PHP 7에서는 intdiv($p, $q)정수 나누기를 직접 수행 하는 사용할 수 있습니다 . 이것은 (int)($p / $q)PHP 5 와 동일합니다 .


PHP 7 시도 intdiv()기능 :

통사론: int intdiv($dividend, $divisor)

          <?php           
           $dividend = 19; 
           $divisor = 3;  
           echo intdiv($dividend, $divisor); 
           ?>

이전 버전의 PHP :

         <?php
     // Convert $total_minutes to hours and minutes.

         $total_minutes = 640;
         $minutes = $total_minutes % 60;
         $hours = ($total_minutes - $minutes) / 60;

         echo "Time taken was $hours hours $minutes minutes";
         ?>

PHP 버전 7 => intdiv(a,b)

7 미만 버전의 경우 (예 : 5.6) => (int)floor(abs(a/b))

참고 URL : https://stackoverflow.com/questions/12832557/divide-integer-and-get-integer-value

반응형