我正在编写一个计算几何变换的应用程序,在测试程序时,我发现了一些奇怪的东西:我在两台不同的机器上启动了测试,Z400 工作站配备英特尔® 至强® 处理器 W3550 和 Z800 工作站配备英特尔® Xeon® 处理器 X5560,我在一次操作中得到了不同的结果:
double x = 24.169408798217777 * sin(0.59420877837561048) / sin(0.97658754841928608)
有了 Z400,我得到了x=16.330508228047432
而 Z800 抛出这个值x=16.330508228047435
最后一位的值不同,我用那个值做了很多计算,所以很不方便。
我尝试使用sinl
以获得更高的精度,但每个工作站我一直得到相同的值。它出什么问题了?我该如何解决?