今天处理一个数据,程序bug了,算出了-1.#IND,原因是算出了面积为零的三角形,而之中我用来sqrt()做开方。但让我很郁闷的是为什么会有面积为零的三角形,于是我找啊找,找到了这三个点:

1.573970, 9.490746, -1.333724

1.953880, 9.890684, -1.306802

2.333790, 10.290600, -1.279880

咋眼看去这三点好像很正常,但仔细看就会这三点几乎共线,而且还是等距,可以算出三边长为:

0.55227421271321409

0.55225828127788124

1.1045324938868932

前两个加起来等于:

1.1045324939910954

相差了0.0000000001,于是我做减法,开方,华丽丽的算出了-1.#IND。

几万点中竟有如此巧合,让我为我程序异常处理的不严谨付出了时间的代价。



Published

20 August 2014

Tags