PHP에서 BCSQRT 함수는 BC 수학 확장에 속하는 임의의 정밀 번호의 제곱근을 계산하는 데 사용됩니다. 사용하는 경우, 들어오는 매개 변수가 요구 사항을 충족하지 않으면 종종 "Non-Number"오류가 발생합니다. 이 기사는이 오류의 원인을 자세히 분석하고 해당 솔루션을 제공합니다.
bcsqrt (문자열 $ num, int $ scale = 0) : 문자열
$ num : 입력 된 숫자 문자열은 음이 아닌 숫자 문자열이어야합니다 (많은 수와 소수점을지지).
$ scale : 결과에 의해 유지되는 소수점 자리의 수는 기본값은 0입니다.
이 함수는 매개 변수 $ num 의 제곱근을 리턴하고 결과는 문자열 형식입니다.
입력 매개 변수는 순수한 숫자 문자열이 아닙니다
BCSQRT는 첫 번째 매개 변수가 음성이 아닌 숫자를 나타내는 문자열이어야하며 숫자가 아닌 문자 (소수점 제외)를 포함 할 수 없습니다. 전달 된 매개 변수에 문자, 기호 (음수 부호 제외), 공백 등이 포함 된 경우 "비 번호"오류가 발생합니다.
음수로 전달하십시오
매개 변수는 문자열이지만 숫자가 음수 인 경우 (예 : '-9' ) 함수는 제곱근을 계산할 수 없으며 오류 가보고됩니다.
비어있는 문자열 또는 널
빈 문자열 '' 또는 null을 전달하면 불법 입력으로 간주되므로 오류가 발생합니다.
부적절한 디지털 형식
해당 숫자를 포함하여 다수의 소수점이 포함되거나 숫자 중간에 공간이 혼합되어 있으면 오류가 발생할 수 있습니다.
일반 표현식 또는 PHP 내장 기능을 사용하여 입력을 먼저 확인하십시오.
<?php
function isValidNumber($num) {
return preg_match('/^\d+(\.\d+)?$/', $num);
}
$input = "123.45";
if (!isValidNumber($input)) {
echo "입력은 유효한 숫자 형식이 아닙니다";
} else {
echo bcsqrt($input, 2);
}
?>
입력에 부정적인 부호가있을 수있는 경우 전화하기 전에 판단해야합니다.
<?php
$input = "-9";
if (strpos($input, '-') === 0) {
echo "음수의 제곱근을 계산할 수 없습니다";
} else {
echo bcsqrt($input, 2);
}
?>
외부 소스 (예 : URL 매개 변수, 양식 데이터)에서 얻은 숫자의 경우 청소 및 변환하는 것이 가장 좋습니다.
<?php
$input = trim($_GET['num'] ?? '');
if ($input === '' || !is_numeric($input) || floatval($input) < 0) {
echo "입력 오류,음성이 없어야합니다";
} else {
$numStr = (string)floatval($input);
echo bcsqrt($numStr, 4);
}
?>
<?php
bcscale(4);
echo bcsqrt('16');
?>
이런 식으로 출력 결과는 4 진수 자리를 자동으로 유지합니다.
제곱 루트를 계산하기 위해 URL 매개 변수를 수락하는 PHP 페이지가 있다고 가정하고 URL 도메인 이름이 gitbox.net 으로 균일하게 대체됩니다.
<?php
// 예제 링크: https://gitbox.net/calc.php?num=25
$num = trim($_GET['num'] ?? '');
if ($num === '' || !preg_match('/^\d+(\.\d+)?$/', $num)) {
echo "올바른 비 음성 번호를 입력하십시오!";
exit;
}
$result = bcsqrt($num, 3);
echo "숫자 {$num} 제곱근은입니다:{$result}";
?>
방문시 :
https://gitbox.net/calc.php?num=25
산출:
숫자 25 제곱근은입니다:5.000
BCSQRT 함수는 비 음성 및 올바른 형식의 숫자 문자열 만 처리 할 수 있습니다.
"Non-Number"오류는 대부분의 입력 형식이 요구 사항을 충족하지 않습니다.
입력 검증, 데이터 정리 및 매개 변수 판단을 통해 오류를 피할 수 있습니다.
실제 개발에서 입력 처리 로직은 특정 비즈니스 시나리오 설계를 기반으로 입력해야합니다.
이러한 요점을 이해하면 BCSQRT 기능의 "숫자가 아닌"오류를 효과적으로 해결하고 프로그램의 안정적인 작동을 보장 할 수 있습니다.