c++中的浮点数运算问题 5C

项目里用到了浮点数运算 double型变量,但是计算的结果不正确。
相关代码:
double quickTubao::getarea(vertice p1, vertice p2,vertice p3)
{
double area1 = p1.x*p2.z;
double area2 = p2.x*p3.z;
double area3 = p3.x*p1.z;
double area7 = area1+area2+area3;
double area4 = p1.z*p2.x;
double area5 = p2.z*p3.x;
double area6 = p3.z*p1.x;
double area8 = area4+area5+area6;
return area7-area8;
}
但是每次调试的计算结果并不正确:
图片说明
小数点后面全部被置为了0,这是什么原因呢?

c++

2个回答

vertice里面的xyz是什么类型的

u012055111
加油阿七 回复phenix2009: 输入数据是正常的。
大约一年之前 回复
phenix2009
白色一大坨 回复u012055111: 这个应该从根上查,你输入的vertice类型里面数据是否正常,如果不正常说明调用函数时候输入就错了,那么应该再往上查
大约一年之前 回复
u012055111
加油阿七 是double类型的,问题在于我的代码中用到了DirectX库,调试的时候发现在d3d设备初始化前浮点数运算都是正确的,在d3d初始化之后就有问题了,会不会是这个问题呢?
大约一年之前 回复

vertice里xyz 一是小数部分本来就是0或者不是浮点型,二是xyz正确初始化或者赋值了吗,三是会不会出现溢出了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问