回 帖 发 新 帖 刷新版面

主题:C++小白求助,麻烦大家帮帮忙

刚学了两天的C++……基本还是什么都不会,问题是这样的

#include <iostream> 
using namespace std; 
int main() 

cout << 92934*29942 << endl; 


我要计算 92934*29942 但是因为默认的双精度型表示范围不够大,结果发生溢出显示结果为-1512337468,于是换长双精度型92934l*29942l 还是溢出
怒了,按附件的计算机,得出2782629828,的确是超出了有效位……想问下这样改怎么写才能够不溢出?

回复列表 (共4个回复)

沙发

改成double 双精度就可以了吧 貌视long 也不行 还是用double

板凳


用VC写一个可以表示任意位数据相乘的程序很不简单

3 楼

你这里的相乘默认为INT型

4 楼

用long就是了

我来回复

您尚未登录,请登录后再回复。点此登录或注册