>백엔드 개발 >C++ >부동 소수점 숫자를 가장 가까운 반 단위로 반올림하려면 어떻게 해야 합니까?

부동 소수점 숫자를 가장 가까운 반 단위로 반올림하려면 어떻게 해야 합니까?

DDD
DDD원래의
2025-01-06 03:44:40790검색

How Can I Round Floating-Point Numbers to the Nearest Half-Increment?

부동 소수점 값을 가장 가까운 반점 증분으로 반올림

등급을 표시할 때 명확성과 이해 가능성을 유지하기 위해 정확한 증분을 선호하는 경우가 많습니다. . 이 특정 시나리오에서는 입력 값이 특정 패턴에 따라 가장 가까운 0.5 증분으로 반올림됩니다.

이를 달성하려면 다음과 같은 간단한 수학 연산을 적용할 수 있습니다.

  1. 입력 등급에 2를 곱합니다. 이렇게 하면 효과적으로 소수점이 한 자리 이동됩니다. 맞습니다.
  2. MidpointRounding.AwayFromZero와 함께 Math.Round() 함수를 사용하여 곱한 값을 반올림합니다. 이렇게 하면 값을 가장 가까운 정수로 반올림하여 결과 값이 실제 값에 더 가까워지도록 합니다. 입력 등급.
  3. 반올림된 값을 2로 나눕니다. 이렇게 하면 소수점이 복원됩니다. 원래 위치를 가리키며 가장 가까운 0.5 단위로 반올림된 값을 제공합니다.

다음은 코드에서 이 작업을 수행하는 공식입니다.

Math.Round(rating * 2, MidpointRounding.AwayFromZero) / 2

이 방법을 사용하면 효율적으로 작업할 수 있습니다. 0.5 단위로 원하는 표시 형식을 지원하는 입력 등급의 정확한 반올림.

위 내용은 부동 소수점 숫자를 가장 가까운 반 단위로 반올림하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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