수학 함수가 포함된 간단한 계산기에서 pow는 () 함수는 특히 거듭제곱에 대해 부정확한 결과를 생성하는 것 같습니다. pow(5,2) 연산이 24를 반환하는데 이는 잘못된 것입니다.
이러한 불일치의 이유는 데이터 유형 변환에 있습니다. 제공된 코드의 pow() 함수는 부동 소수점 숫자를 반환하지만 결과는 정수 변수(int 응답)에 할당됩니다. 결과적으로 변환이 발생할 때 숫자의 소수 부분이 잘립니다.
올바른 결과를 얻으려면 부동 소수점을 처리하도록 계산을 수정해야 합니다. 가치. 두 가지 제안된 접근 방식이 있습니다.
부동 소수점 결과 반올림:
pow() 결과에 할당하기 전에 0.5를 추가합니다. 정수 변수인 경우 가장 가까운 정수로 반올림될 수 있습니다. 이 방법은 결과가 정수일 것으로 예상되는 경우에 적합합니다.
int answer; answer = pow(number1,number2) + 0.5;
부동 소수점 결과에 정수가 아닌 변수 사용:
결과가 정수가 보장되지 않는 경우 정수 대신 double 또는 float 변수를 사용하는 것이 좋습니다. 이렇게 하면 숫자의 소수 부분이 보존됩니다.
double answer; answer = pow(number1,number2);
코드의 제곱근 함수도 결과를 할당합니다. 이는 적절하지 않은 정수 변수입니다. 제곱근은 정수가 아닌 경우가 많으므로 결과를 저장하려면 double 또는 float 변수를 사용하는 것이 좋습니다.
위 내용은 내 pow(5,2) 함수가 25 대신 24를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!