2012-05-14 5 views
4

계수 부분은 정수만 반환합니까? 나는 플로트 리턴이 필요해. 다음을 참조하십시오.계수 분수는 정수를 반환합니까?

var_dump(12 % 10); // returns 2, as expected 
var_dump(11.5 % 10); // returns 1 instead of 1.5? 
+0

는 @tom_yes_tom – inhan

+0

@mauris에 의해 제안 된 대체 기능을 참조 : 또한 내가 생각 올바르지 않습니다. 나는 마지막 문구가 초기 질문을 변경한다고 확신한다. – zerkms

+0

@zerkms는 어떤 의미에서 틀린가? 나는 포스트의 질을 향상 시키려고 노력했다. 게시물에 태그가 붙여지기 때문에 "PHP"가 제목에있을 필요가 없습니다. – mauris

답변

8

예. % 연산자는 정수를 반환합니다.

부동 소수점 결과를 얻으려면 fmod() 함수를 대신 사용하십시오.

4

manual을 참조하십시오.

계수의 피연산자는 처리하기 전에 ( 소수 부분을 제거하여) 정수로 변환됩니다. tom_yes_tom에서 알 수 있듯이, fmod() :

11.5 (11)

11 % 10 = 1 remainder **1**

귀하의 솔루션이된다.

+1

이것은 설명하지 않습니다 ** ** 정수 ** – zerkms

+0

@zerkms 왜 고맙습니다. – ccKep

1

에 따옴표 documentation page :

. "모듈러스 오퍼랜드 처리 전에합니다 ( 소수부 스트리핑) 정수로 변환"

0

해결 방법이 있습니까?

수학 ...

11.5 - floor(11.5/10) * 10 == 1.5