double X,Y;

其中X,Y分别是两个精度很高的值,也就是有效数字到了小数点后十几位;

现在对X ,Y进行一系列乘除运算,然后同样得出了一个精度很高的值

然后调用 像Idirect3d之类的 CreateDevice函数,再对X,Y进行同样的一次乘除运算

理论上结果和前一次应该相同,但是在小数点第九位以后开始出现了偏差,想明白这个createdevice是怎么对double值之间的运算造成影响的

推荐图书

  • C++ Primer中文版(第4版)
  • More Effective C++:35个改善编程与设计的有效方法(中文版)
  • 设计模式:可复用面向对象软件的基础


1个回答

CreateDevice会修改double精度。需要在创建CreateDevice是设置D3DCREATE_FPU_PRESERVE