golang의 실수 계산(부동소수점 오차, 머신 엡실론)


golang의 실수 계산(부동소수점 오차, 머신 엡실론)

golang에서의 실수는 소수점을 찍거나 또는 지수 표기법 e / E를와 + / - 를 사용하여 소수점 위치를 지정합니다. 컴퓨터는 2진수를 사용하기 때문에 실수를 정확하게 표현할 수 없는데, 특히 무한 소수의 경우 2진수로 정확히 표현할 수 없고 아쉬운대로 근사값으로 표현해야 합니다. 따라서 아래와 같은 문제 상황이 발생할 수 있습니다. 1. 등호(==)로 비교 불가능 package main import ( "fmt" "math" ) func main() { //variables var ( a float64 = 9.9 ) const ( epsilon = 1e-14 ) a = a - 0.7 fmt.Println(a) //9.2000000000001 } 변수 a에 9.9를 할당하고 0.7을 빼면 9.2가 ..


원문링크 : golang의 실수 계산(부동소수점 오차, 머신 엡실론)