vc double遇上创建D3D9创建设备,取值出问题了.
if(FAILED(hr = g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, Flags, &d3dpp, &g_pd3dDevice))) return hr; // double tttvv=123456789123456789; double tttvv=10000000000000;//double可取值16位-18位 for(int i=0;i<6;i++) { // tttvv+=12345678912345; tttvv+=1000000000;//当值超过20亿时,数值就会计错数了. printf("i:%d,tttvv:%.0f\n",i,tttvv); } 程序运行结果:tttvv=10006001876992; 正确结果结果:tttvv=10006000000000; 我想,为什么会计算出错呢.是因为创建D3D9创建设备,取值最大为long型. 如果不创建D3D9创建设备,取值就为正常了. 有没有哪位大哥..遇见过..?