부호 정보가 손실되지 않도록 부동 소수점을 직렬화하려고합니다. 특히 IEEE-754 음수 0과 일반 0을 구별하고 싶습니다.구분 기호 0 : float64 (0) from 이동
language spec는 IEEE-754 표준 이상으로 지정되지
0으로 부동 소수점 나눗셈의 결과를 말한다; 런타임 패닉이 발생하는지 여부는 구현에 따라 다릅니다. 내가
n == 0 && (float64(1)/n) < 0
할 수 없습니다 나는 시도 제안
말한다 math.Copysign
및 math.Signbit
func Signbit(x float64) bool
Signbit
반환true
x가 음수 또는 부의 제로가됩니다.
하지만
n == 0 && math.Signbit(n)
이
n := -float64(0)
어떤 아이디어가 작동하지 않는 것 ?
편집 : peterSO에 의해 제안
는 내가 무슨 생각을 추적 할 issue 2196을 제기은nz := -float64(0)
및
pz := float64(0)
nz := -pz
사이에 혼란 차이입니다.
고마워, 나는 이해한다고 생각해. 이 기호는'-float64 (0)'에서는 없어지지 만 명시 적으로 추가 작업을 수행 할 때는 사라집니다. –