https://github.com/numpy/numpy/issues/6428에서 버그의 근본 원인은 simd.inc.src:543
일 때 컴파일러에서 !(tmp == 0.)
을 tmp != 0.
으로 최적화합니다.float == 및! =가 직접 대립하지 않는 경우
A comment은 "이들은별로 똑같지 않습니다"라고 말합니다. 그러나 세부 사항을 명시하지는 않습니다. NaN은 계속 언급되지만 테스트에서는 NaN이 0.
과 비교되는 것으로 나타났습니다.
==
과 !=
이 모두 true/false를 반환 할 수있는 경우는 어떻게됩니까?
또는 다른 필드에 차이가 있습니다. 예. 동일한 진리 값을 가지지 만 int와는 다른 값을 반환합니다 (그러나이 경우에도 테스트 결과가 표시되지 않습니다) ?
'f'가'NaN' 일 수 있으면'int'가 아닙니다. –
Nan cant는 0이됩니다. 0은 Number이므로 NaN은 숫자가 아니기 때문에 의미가 없습니다. 그래서 당신이 이렇게하면'int a = 0;'a는 NaN입니까? – amanuel2
내가 명백한 것을 놓치고있는 경우 실례합니다. 그러나 그 스레드에서 그 원인을 근본 원인으로 식별합니까? 내가 본 가장 가까운 참조는 "나는 추측 할 것"입니다. 어쨌든이 링크 된 버그는 더 가까워 보인다. https://github.com/numpy/numpy/pull/6438 –