有人能解释一下以下内容吗?我有一个在Go中的函数,接受几个float64值,然后使用这些值计算出许多其他值。该函数如下:
结果被放进一个类似于结构体的数据结构中。
现在有趣的事情是,如果我像这样调用函数;
func (g *Geometry) CalcStresses(x, zmax, zmin float64)(Vertical)
结果被放进一个类似于结构体的数据结构中。
type Vertical struct {
X float64
Stresses []Stress
}
现在有趣的事情是,如果我像这样调用函数;
for i:=14.0; i<15.0; i+=0.1{
result := geo.CalcStresses(i, 10, -10)
}
我搜索到很多的结果显示Stress数组是空的,另一个有趣的细节是有时候x的值显示成带有很多小数点的数字(例如14.3999999999999999998)。
然而,如果我这样调用函数;
for i:=0; i<10; i++{
x := 14.0 + float64(i) * 0.1
result := geo.CalcStresses(x,10,-10)
}
那么一切都很好。
有人知道为什么会发生这种情况吗?
提前感谢, 罗布