-1
这里是我的代码的一部分(I缩影它):2计算机得到不同的输出
#include <iostream>
#include <cmath>
#include <iomanip>
int main()
{
double pi = M_PI;
long long x = 12026548095792;
std::cout << std::fixed << std::setprecision(8) << pi * x;
}
我的计算机的输出是:
37782515145784.46100000
(视窗7 64,处理器:英特尔(R )Core(TM)i3-2328M CPU @ 2.20ghz)。
但是,当我跑我的SPOJ代码,输出是
37782515145784.46093750
(集群:多维数据集(英特尔G860))。
请帮我解释一下这个问题。
更新:我用codeblocks 16.01,gcc版本5.3.0。
也发布编译标志 – Mikhail
也许像http://christian-seiler.de/projekte/fpmath/或https://gcc.gnu.org/wiki/FloatingPointMath可能会解释发生了什么。如何解决这个问题取决于你使用的特定编译器和一组目标平台。 – SergGr
谢谢你的帮助。 –