此双倍(双)1000000007 *(双)11111111的输出应以7结尾(或等于11111111077777777为准确)。但是我写的这段代码输出了以6结尾的结果(或者等于11111111077777776)。我无法弄清楚我可能会做错什么。任何帮助都会很棒。为什么乘两个大的双数会给出错误的结果?
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << setprecision(40) << (double)1000000007 * (double)11111111;
}
+1 - 这是我最喜欢的论文之一 – LittleBobbyTables
准确地说,乘以两个“双”是非常准确的,它只是不准确*。 (你总是可以得到相同的答案,并且可以事先确定,但如果你的双倍智力模型是一个真实的数字,它不会是“正确的”) – Yakk
感谢您的帮助! :) –