我有一个看起来很简单的C++问题,困扰着我。代码在C++中乘双倍错误
#include <iostream>
using namespace std;
int main() {
// your code goes here
double c = 9.43827 * 0.105952 ;
cout << c << endl ;
return 0;
}
的输出为1只是1。我想这是因为失去精度基于双打如何存储在C++中,但肯定必须有在C++中获得某种精确的方式( 2或3位小数)。
冰:9.43827 * 0.105952 = 1.00000358304,setprecision(12)= 1.00000358305 – msmith81886
由于@Max疼痛。我真正需要做的是将这个双重乘法的结果传递给另一个双重乘法。使用cout只是为了说明问题。我如何将更高精度的结果传递给另一个double? – reayn3
@ reayn3:它已经完全精确*存储*。 –