C:将双倍输出除以lnf

Fer*_*s 0 c

http://pastie.org/752941

当我除去dy/dx时,它返回lnf.请告诉我这是什么意思,以及如何找到dy/dx的实际结果.谢谢.

pax*_*blo 5

除以零(或足够小的数字)时,无法用浮点表示法表示结果.在这种情况下,你得到一个无穷大(+ Inf或-Inf).

例如,如果您已经拥有IEEE754双倍表示的最大数字,并将其除以0.1(即乘以10),您将获得+ Inf.

IEEE754将一些位模式分配给特殊值,如+/-无穷大和NaN(不是数字).

我很久以前就停止尝试在计算机上将线条表示为(渐变,y-交叉)对(因为你可以用你头脑中的无穷大来计算它在纸上是可以的).您可以通过简单地将线条表示为(x1,y1,x2,y2)4元组来避免无穷无尽的麻烦 - 如果您以这种方式表示线段,您将找到适用于所有渐变的算法.

否则,在计算渐变时,您将始终需要对导致溢出的近垂直线进行特殊处理.