2012-01-05 5 views
1

부동 소수점 연산에 대한 IEEE 표준에서 곱셈을 통해 보존 된 부동 소수점 순서가 있습니다. 예를 들어, a, x 및 y를 부동 소수점 수로 가정하십시오.IEEE 754-2008 표준 곱셈에서 보존 됨

x < y이면 ax < ay?

이것이 사실이 아니라면 확실히 이상 할 것입니다. 그러나 저는 약간의 안심을 원합니다.

미리 감사드립니다.

답변

1

귀하의 질문에 승수가 긍정적이라고 가정합니다.

대답은 '아니오'입니다.

먼저 제품이 언더 플로우하거나 넘칠 수 있습니다. 이 경우 0 또는 + 무한대로 반올림되며 부등호가 위반됩니다.

더 일반적인 경우에 대해서는

: 결과가 항상 올바르게 반올림되며 ax의 반올림 값 ay의 반올림 값보다 작으므로, AX의 반올림 값 y의 반올림 값보다 클 수 없다. 이것은 여전히 ​​하나가 반올림되고 다른 하나가 반올림되고 반올림 된 값이 동일 할 가능성을 남겨 둡니다.

xy이 연속 부동 소수점 일 경우에만 발생할 수 있습니다. 그렇지 않으면 차이는 항상 마지막 자리에서 1 단위보다 커지고 숫자는 반올림 될 수 없습니다.

그리고 불행히도 때때로 이런 일이 발생합니다. 예를 들어 보자

x = 1.2345678899999997 
y = 1.23456789 
a = 0.84812721230468113 

다음 두 axay1.047070622946572 같다.

+0

+1하지만, 곱셈의 결과가 비정규이면 'x'와 'y'가 연속적인 부동 소수점이 아니더라도 이것이 일어날 수 있습니다. 또한 대답은 'a'가 0, 무한대 또는 NaN 인 경우 간단히 '아니요'입니다. –