누군가가 다음을 설명 할 수 있습니까? 나는 몇 가지 float64를 받아 들인 다음이 값을 사용하여 많은 다른 값을 계산하는 함수가 있습니다. 결과가GoLang for floats가 오류를 생성 함
type Vertical struct {
X float64
Stresses []Stress
}
같은 구조체에 넣고
func (g *Geometry) CalcStresses(x, zmax, zmin float64)(Vertical)
같은 기능은 이제 재미있는 점은 이것이다 보인다. 만약 내가이 함수를 호출하면; 다음
for i:=14.0; i<15.0; i+=0.1{
result := geo.CalcStresses(i, 10, -10)
}
나는 스트레스 배열이 비어 결과를 많이 얻을 antoher 흥미로운 세부 때로는
그러나 (14.3999999999999999998 같은) 소수의 많은 숫자처럼 보여 x를 내가 호출하는 경우이다 이 같은 기능;
for i:=0; i<10; i++{
x := 14.0 + float64(i) * 0.1
result := geo.CalcStresses(x,10,-10)
}
모든 것이 좋습니다.
왜 이런 일이 발생하는지 알고 있습니까? 사전에
감사합니다, 롭
당신은 이러한 리소스에게 도움이 될 수 : http://www.validlab.com/goldberg/paper.pdf 및 http://floating-point-gui.de/ – Volker
와우, 감사합니다 Volker, 이것은 확실히 내가 가질 수있는 가장 포괄적 인 대답이다 .-) Great paper, thx! – BreinBaas