나는 다음과 같은 출력을 받고 있어요 반올림 :반올림 4 소수점 - 예기치 않은 결과
Math.Round(2.3234503,4) = 2.3235
Math.Round(2.323450,4) = 2.3234
나는이 말이 볼 수 없습니다가, 누군가가 나에게 그것을 지적 할 수 있습니까? 나는 두 번에 2.3235의 대답을 기대했다. 마지막 소수점 자리에서 숫자 3 또는 부족이 어떻게 결과에 영향을 미칠 수 있습니까? MSDN
리턴한다
나는 다음과 같은 출력을 받고 있어요 반올림 :반올림 4 소수점 - 예기치 않은 결과
Math.Round(2.3234503,4) = 2.3235
Math.Round(2.323450,4) = 2.3234
나는이 말이 볼 수 없습니다가, 누군가가 나에게 그것을 지적 할 수 있습니까? 나는 두 번에 2.3235의 대답을 기대했다. 마지막 소수점 자리에서 숫자 3 또는 부족이 어떻게 결과에 영향을 미칠 수 있습니까? MSDN
리턴한다
:
수 소수와 동일한 자리수의 숫자를 포함하는 D 가까운.
키워드는 가장 가까운 단어입니다.
2.3234 503 - 503에 가까운 5
2.3234 내지 50 정도로 둥근 5 - 절반 방법이다. 중심점 값 MSDN
에서 반 방식
는 최하위 디지트 후 결과 값이 두 숫자 사이의 정확히 절반 방법이다. 예를 들어, 3.47500은 소수점 두 자리를 반올림하려는 경우 중간 값이고 7.500은 정수로 반올림하려는 경우 중간 값입니다. 이러한 경우 가장 가까운 값은 반올림 규칙없이 쉽게 식별 할 수 없습니다. 0에서 떨어진 다음 번호로 반올림 제로중간 점 값에서 멀리 라운딩
: 라운드 방법은 두 개의 중간 값을 처리하기위한 규칙 라운딩 지원한다. 예제의 경우 3.75 ~ 3.8, 3.85 ~ 3.9, -3.75 ~ -3.8, 및 -3.85 ~ -3.9입니다. 이 형태의 반올림은 MidpointRounding.AwayFromZero 열거 형 멤버로 나타냅니다. 에서 반올림하면 가장 널리 알려진 반올림 형식입니다.
가까운 반올림 또는 은행의이
중간 점 값을 가장 가까운 짝수 로 반올림하는 반올림. 예를 들어 3.75와 3.85는 모두 3.8로 반올림되며, -3.75 과 -3.85는 -3.8로 반올림됩니다. 이 형태의 반올림은 MidpointRounding.ToEven 열거 형 멤버로 나타냅니다. 가장 가까운 값으로 반올림하면 재무 및 통계에 사용되는 표준 양식의 반올림이 작업입니다. IEEE 표준 754, 섹션 4를 준수합니다. 다중 반올림 작업에서 사용되는 경우 단일 방향의 중간 값을 일관되게 반올림하여 반올림 오류 ( )를 줄입니다. 경우에 따라이 반올림 오류가 심각 할 수 있습니다.
기본적으로 Round 메서드는 가장 가까운 규칙을 반올림하여 사용합니다.
OP는 왜 * half-point * 숫자가 위로가 아니라 아래로 반올림됩니다. * 가장 가까운 숫자가 아닙니다. .NET은 Banker 's Rounding이라고도하는 일대일 방식을 사용합니다. IEEE 754 표준입니다. –
@PanagiotisKanavos 당신이 옳다면, 대답이 향상되었습니다. – BWA
입력 해 주셔서 감사합니다. 내 실수는 네가 반올림하여 5 번째 숫자를 취하고 타이 브레이크 규칙을 적용한 소수점 4 자리를 말하면 내가 믿는 것이다. 나머지 자릿수 (예 : 503)를 모두 가져 와서 규칙 – user48408
나는 그것을 믿지 않아요, 내가 기본값은 심지어 대신 0에서 멀리 둥근 라운드하는 것입니다 알고 있지만 당신이 여기에 표시된 필자의 예에서 다시 보면 그것은 때문에 03의 다른 문제 – user48408
을 보여줍니다 , 당신은 더 이상 중도가 아닙니다. 당신은 약간 위 * 중간에 있습니다. – SuperOli
여기에 중복으로 표시된 질문은 관련이 없습니다. 값'2.323450'은 동점이 아니므로, round-ties-to-even 또는 round-ties-from-zero가 사용 중인지 여부는 중요하지 않습니다. OP의 두 번째 예제 값은 2 진 부동 소수점 덕분에 '2.3235'보다 '2.3234'에 약간 더 가깝습니다. (저장된 실제 값은'2.3234499999999793232063893810845911502838134765625'입니다. –