본문 바로가기
Develop/PHP

PHP 소수점 나머지가 나오지 않는 이유

by bellsilver7 2022. 6. 20.
728x90

나머지를 구하는 연산으로 % 기호를 사용하게 된다.

위처럼 x 값이 12.1 이고 10 으로 나눈 나머지를 구하려면 12.1 % 10 이라는 수식을 만들어 주면 된다. 

 

$x = 12.1;
echo $x % 10;

 

그러나 위와 같이 PHP 문법으로 나머지를 구하게 되면 2라는 값이 출력되게 된다. 

 

위와 같은 의문점은 PHP 문서에서 조금 해소될 수 있었다.

참조: https://www.php.net/manual/en/language.operators.arithmetic.php

 

PHP: Arithmetic Operators - Manual

With PHP 8.1 and more, be carefull to the modulo "%"Both argument must be some integer or a float without floating part.Bad Example: You will enjoy a :Deprecated: Implicit conversion from float 12.5 to int loses precision in ... filenameDeprecated: Implici

www.php.net

 

Operands of modulo are converted to int before processing. For floating-point modulo, see fmod().

문서에는 위와 같이 나머지 연산자를 사용할 때 처리 전에 int 형으로 변경한다고 하고 소수점 연산시에는 fmod() 를 참조하라고 적혀 있다.

 

왜 이렇게 했는지 의문이지만 다른 문법과는 다른 차이점이기에 기억해두어야 할 것 같다. 

728x90

댓글