에서 모듈 얻기 위해 어떻게해야 :는 플로트
$value = 0.57;
$step = 0.01;
내가 가치 $/$ 단계 정수가 있는지 확인하고 싶습니다. 또한 때로는 $ 값이 음수입니다. 내가 무엇을 얻을
은 다음과 같습니다
$value/$step -> 57
is_int($value/$step) -> false
and the best one:
floor($value/$step) -> 56 (I assume that 57 is really 56.9999999(9))
$a - $b * floor($a/$b) -> 0.0099999(9)
($value/$step)%1 -> 0 (ok, but % doesn't work if it is really a float)
fmod($value/$step) -> 0.999999999(9)
어떤 생각?
소수점 연산 부동 사실상 당신에게 정확한 결과를 제공하지 않습니다. equals 연산자는 대개 수레와의 문맥에서 완전히 잘못 배치됩니다. 어떤 것이라도 결과는 항상 일정한 오류 범위 내에있는 것으로 평가됩니다. – deceze
@deceze 그럼 $ value가 $ step => $ value = $ n * $ step의 $ n 단계인지 확인하는 방법을 알고 계십니까? $ n은 정수이고 $ value이면 $ step은 실수 일 수 있습니다 (음 또는 양수)? – RobM