日期:2014-05-17  浏览次数:20866 次

数据乱值问题?
已知两个点:(x0,y0),(x1,y1)画一直线,
还有一个以点(a0,b0)为圆心,r为半径的圆,
现在知道两个点到圆心的距离,一个大于r,一个小于r。(保证直线与圆有两个交点)
现在编程序运行,一般的点值都能运算出来,基本正确

只是当两个点x0与x1值相当接近时(接近垂直,但不是垂直),在计算时出现double值计算错误,甚至有b2-4ac小于0的情况(这是不可能的,因为两点到圆心距离是一长一短!),知道是运算时x0和x1太接近,做分母产生巨大数据,引起的计算失误,有哪位大侠给分析一下,如何解决?

------解决方案--------------------
用int型进行长整数运算;如果非要用double的话,就保留两位有效数字吧