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)는 동일한 결과를 반환하지만 때로는 작은 라운드 오류가 발생합니다.