h**********c 发帖数: 4120 | 1 如何处理这样的精度?
double r1 = 1.0*2.0 + 1.0*2.0 + 1.0 *2.0;
double r10 = r1/sqrt(1.0+1.0+1.0)/sqrt(2.0*2.0+2.0*2.0+2.0*2.0);
VC++ 2010 express, Vista 64 结果
r10 = 1.0000000000000002;
求acos(r10)的时候溢出,用float也一样戴一个尾巴。
这样的运算怎样避免溢出?
非express 版也有这个问题吗?
没有试别的compler. |
f*******n 发帖数: 12623 | |
h**********c 发帖数: 4120 | 3 THNKS, the article is a little bit long.
Has someone tried to rewrite acos/atan sth?
【在 f*******n 的大作中提到】 : http://docs.sun.com/source/806-3568/ncg_goldberg.html
|
t***s 发帖数: 4666 | 4 use atan or atan2 instead?
【在 h**********c 的大作中提到】 : 如何处理这样的精度? : double r1 = 1.0*2.0 + 1.0*2.0 + 1.0 *2.0; : double r10 = r1/sqrt(1.0+1.0+1.0)/sqrt(2.0*2.0+2.0*2.0+2.0*2.0); : VC++ 2010 express, Vista 64 结果 : r10 = 1.0000000000000002; : 求acos(r10)的时候溢出,用float也一样戴一个尾巴。 : 这样的运算怎样避免溢出? : 非express 版也有这个问题吗? : 没有试别的compler.
|