>  기사  >  백엔드 개발  >  C에서 숫자를 가장 가까운 배수로 효율적으로 반올림하려면 어떻게 해야 합니까?

C에서 숫자를 가장 가까운 배수로 효율적으로 반올림하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-26 14:04:13267검색

How Can I Efficiently Round Up Numbers to the Nearest Multiple in C  ?

C에서 숫자의 배수로 반올림

프로그래밍에서 숫자로 작업할 때 값을 반올림해야 할 수 있습니다. 다른 숫자의 가장 가까운 배수. C에서 이 작업에 접근하는 방법은 여러 가지가 있지만 이 기사에서는 정수 산술을 활용하여 정확한 반올림을 달성하는 효율적인 방법에 중점을 둘 것입니다.

제공된 코드 조각인 roundUp은 양수에 대한 간단한 솔루션을 제공합니다. 입력 숫자 numToRound를 배수로 나눈 나머지를 계산하고 나머지가 0이 아닌 경우 해당 배수를 numToRound에 추가합니다. 이렇게 하면 결과가 입력보다 크거나 같은 가장 가까운 배수가 됩니다.

그러나 음수의 경우 원래 코드는 원하는 동작을 제공하지 않습니다. 음수를 수용하기 위해 roundUp의 수정된 버전이 도입되었습니다. 이 버전은 반올림 작업을 수행하기 전에 입력 숫자의 절대값을 계산합니다. 또한 조건부 논리를 사용하여 입력 부호에 따라 결과 부호를 조정합니다. 이렇게 하면 결과가 부호에 관계없이 항상 입력보다 크거나 같게 됩니다.

다음은 양수와 음수를 모두 처리하기 위해 업데이트된 코드입니다.

int roundUp(int numToRound, int multiple)
{
    if (multiple == 0)
        return numToRound;

    int remainder = abs(numToRound) % multiple;
    if (remainder == 0)
        return numToRound;

    if (numToRound < 0)
        return -(abs(numToRound) - remainder);
    else
        return numToRound + multiple - remainder;
}

이제, roundUp 기능은 양수 입력과 음수 입력 모두에 대해 일관된 동작을 제공하여 주어진 숫자의 가장 가까운 배수로 정확하게 반올림되도록 합니다.

위 내용은 C에서 숫자를 가장 가까운 배수로 효율적으로 반올림하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.