1.25라고 가정하면이 숫자의 “1”과. “25”부분을 어떻게 얻습니까?
소수점이 .0, .25, .5 또는 .75인지 확인해야합니다.
답변
$n = 1.25;
$whole = floor($n);      // 1
$fraction = $n - $whole; // .25
그런 다음 1/4, 1/2, 3/4 등과 비교하십시오.
음수의 경우 다음을 사용하십시오.
function NumberBreakdown($number, $returnUnsigned = false)
{
  $negative = 1;
  if ($number < 0)
  {
    $negative = -1;
    $number *= -1;
  }
  if ($returnUnsigned){
    return array(
      floor($number),
      ($number - floor($number))
    );
  }
  return array(
    floor($number) * $negative,
    ($number - floor($number)) * $negative
  );
}
은 $returnUnsigned하기에서 정지 -1.25를 위해서는 -1 및 -0.25
답변
이 코드는이를 분할합니다.
list($whole, $decimal) = explode('.', $your_number);
여기서 $ whole은 정수이고 $ decimal은 소수점 뒤에 자리를 갖습니다.
답변
답변
floor () 메서드는 음수에 대해 작동하지 않습니다. 이것은 매번 작동합니다.
$num = 5.7;
$whole = (int) $num;  // 5
$frac  = $num - $whole;  // .7
… 음수에도 작동합니다 (동일한 코드, 다른 숫자) :
$num = -5.7;
$whole = (int) $num;  // -5
$frac  = $num - $whole;  // -.7
답변
짧은 방법 (floor 및 fmod 사용)
$var = "1.25";
$whole = floor($var);     // 1
$decimal = fmod($var, 1); //0.25
그런 다음 $ decimal을 0, .25, .5 또는 .75와 비교하십시오.
답변
int로 캐스팅하고 빼기
$integer = (int)$your_number;
$decimal = $your_number - $integer;
또는 비교를 위해 소수를 얻으려면
$decimal = $your_number - (int)$your_number
답변
사용할 수있는 fmod 함수도 있습니다. fmod ($ my_var, 1)는 동일한 결과를 반환하지만 때로는 작은 라운드 오류가 발생합니다.