C의 부동 소수점 반올림: round()의 부재
ceil() 및 Floor()와 같은 함수는 C에서 사용할 수 있습니다. 부동 소수점 숫자를 반올림하기 위한 math.h 표준 C 라이브러리에는 전용 round() 함수가 없습니다. 이로 인해 C 98 표준에서 round()가 누락되었거나 단순히 다른 이름으로 존재하는지에 대한 의문이 제기되었습니다.
사용자 정의 round() 함수 구현
round()가 기본적으로 제공되지 않기 때문에 사용자는 자체 구현을 만드는 데 의존해 왔습니다. 반올림 방법을 기반으로 한 구현 중 하나는 다음과 같습니다.
double round(double d) { return floor(d + 0.5); }
그러나 이 구현은 정확히 일치하는 숫자를 반올림하므로 항상 원하는 결과를 얻지 못할 수도 있다는 점에 유의하는 것이 중요합니다. 정수에서 가장 가까운 짝수까지 0.5만큼 떨어져 있습니다.
대체 반올림 방법
편향이 적은 반올림 접근 방식을 제공하고 대량 반올림에 선호되는 반올림과 같은 다른 반올림 방법이 있습니다.
포함 C 11
다행히 C 11에는 다음과 같은 내장 round() 기능이 도입되었습니다. std::round, std::lround 및 std::llround는 다양한 데이터 유형에 대한 표준 반올림 동작을 제공합니다. 이러한 기능은 맞춤형 솔루션보다 더욱 강력하고 효율적인 구현을 제공합니다.
위 내용은 C에는 `round()` 함수가 누락되어 있으며 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!