首页 > 解决方案 > long long int 中的溢出

问题描述

在这种情况下,我面临一个溢出问题并得到输出7392445620511834112,我想将 b 和 c 的 2 个大值相乘,并希望存储该值。

#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
    ll b=1000000000000000000;
    ll c=2000000000000000000;
    ll out=b*c;
    cout<<out;
}

标签: c++storageoverflow

解决方案


如果你改变从long longunsigned long long你可能会更接近一点。如果您不关心绝对精度,您可以在这里使用浮点类型,甚至float足以以cout正确显示输出的方式存储输出,但整数更大或更小,或者在以其他方式处理输出时可能想要使用doublelong double获得更多的尺寸和精度。并且不要听所有的人告诉你你做错了,他们整天都在争论堆栈交换上的那些事情。你是怎么做的很好,否则它不会编译。


推荐阅读