http://pastie.org/752941
当我除以dy/dx时,它返回lnf。请告诉我这代表什么,我如何才能找到dy/dx的实际结果。谢谢。

最佳答案

当你除以0(或一个足够小的数)时,没有办法用浮点表示法来表示结果。在这种情况下,得到一个无穷大(+Inf或-Inf)。
例如,如果已经有了可以用IEEE754双精度表示的最大数,并将其除以0.1(即乘以10),则将得到+Inf。
IEEE754将一些位模式分配给特殊值,如+/-无穷大和NaN(不是数字)。
很久以前,我就不再试图在计算机上把直线表示为(梯度,y相交)对(这在纸上是可以的,因为你可以用脑中的无穷来计算)。通过简单地将直线表示为(x1,y1,x2,y2)4元组,您可以避免无穷大的所有麻烦——如果您这样表示线段,您会发现算法对于所有渐变都非常有效。
否则,在计算渐变时,您将始终需要对导致溢出的近垂直线进行特殊处理。

关于c - C:将两倍除以两倍输出lnf,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1945553/

10-13 07:01