PHP 개발에서 처리 번호 및 부동 소수점 번호는 일반적인 작업이며, 두 기능 Ceil () 및 Round ()는 종종 라운드 숫자에 사용됩니다. 언뜻보기에, 그들은 모두 "위쪽으로 둥글다"고 보이지만 그들의 행동과 목적은 본질적으로 다릅니다. Round () 대신 Ceil ()을 잘못 사용하거나 차례로 프로그램 논리 오류를 유발할 가능성이 높습니다. 이 기사는 Round ( ) 대신 Ceil ()을 사용하면 예상치 못한 문제를 일으킬 수있는 이유를 해결합니다.
CEIL (float $ value) : float
통과 된 부동 소수점 번호를 위쪽으로 반올림합니다. 즉, 가장 작은 정수를 그 값보다 더 반환하십시오.
Round (float $ value, int $ precision = 0, int $ mode = php_round_half_up) : float
통과 된 부동 소수점 번호는 반올림 규칙에 따라 반올림되며 기본 정확도는 0, 즉 정수로 반올림됩니다.
<?php
// 값을 테스트하십시오
$number1 = 3.2;
$number2 = 3.7;
$number3 = 3.5;
// 사용 ceil()
echo ceil($number1); // 4
echo ceil($number2); // 4
echo ceil($number3); // 4
// 사용 round()
echo round($number1); // 3
echo round($number2); // 4
echo round($number3); // 4
?>
위 코드에서 :
Ceil () 은 무조건적으로 반올림되며, 3.1이더라도 4로 직접 가져갑니다.
Round ()는 반올림 원칙을 기준으로, 3.2는 3, 3.7 테이크 4, 3.5는 4를 차지합니다.
프로그램 논리가 특정 점수 임계 값을 기준으로 동작을 결정한다고 가정합니다.
점수가 5 미만인 경우 작업 A를 수행하십시오.
분수는 작전 B를 수행하기 위해 5 이상 5 이상입니다.
Ceil () 에 Round를 사용하면 4에서 5 사이의 모든 부동 소수점 번호가 5로 올라가 작업을 수행 해야하는 점수가 작전 B로 잘못 판단됩니다.
예제 코드 :
<?php
$score = 4.3;
if (ceil($score) >= 5) {
echo "구현하다B작동하다";
} else {
echo "구현하다A작동하다";
}
?>
출력은 다음과 같습니다.
구현하다B작동하다
천장 (4.3)이 5와 같기 때문에 4.3은 실제로 5 미만이지만 논리는 오류에 의해 트리거됩니다.
라운드 () 로 대체되는 경우 :
<?php
$score = 4.3;
if (round($score) >= 5) {
echo "구현하다B작동하다";
} else {
echo "구현하다A작동하다";
}
?>
출력은 다음과 같습니다.
구현하다A작동하다
이것이 기대를 충족시키는 것입니다.
CEIL ()은 결과가 원래 숫자 이상이어야하는 시나리오에 적합합니다.
페이징 페이지 수를 계산할 때는 페이지 수가 모든 데이터를 다루기에 충분히 크지는지 확인하십시오.
용량 또는 자원을 계산할 때 부족이 없는지 확인하십시오.
예를 들어:
<?php
$totalItems = 23;
$itemsPerPage = 5;
$totalPages = ceil($totalItems / $itemsPerPage);
echo $totalPages; // 5
?>
여기에서 Ceil ()을 사용하는 것이 매우 합리적이며 한 페이지는 누락 될 수 없습니다.
Ceil () 은 무조건적으로 위쪽으로 둥글게되며 결과는 항상 원래 번호보다 크거나 동일합니다.
Round () 가 둥글고 결과는 원래 번호에 가까운 정수입니다.
프로그램 논리가 "접근"또는 "표준 반올림"에 의존하면 Ceil ()을 사용하면 판단 오류가 발생합니다.
"보장되지 않은"결과가 필요한 경우에만 Ceil ()을 사용하십시오.
위의 설명을 통해이 두 기능의 사용을 더 잘 구별하고 잘못된 선택으로 인해 프로그램 논리 오류를 피할 수 있기를 바랍니다.
<?php
// 사용 round() 예,논리적 오류를 피하십시오
$price = 19.5;
$finalPrice = round($price);
echo "최종 가격은입니다: " . $finalPrice; // 20
?>
<?php
// 사용 ceil() 예,페이지 수를 계산하십시오
$totalRecords = 52;
$perPage = 10;
$totalPages = ceil($totalRecords / $perPage);
echo "총 페이지 수:" . $totalPages; // 6
?>