标题:C++小白求助,麻烦大家帮帮忙
取消只看楼主
五点晨曦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-19
 问题点数:0 回复次数:4 
C++小白求助,麻烦大家帮帮忙
刚学了两天的C++……基本还是什么都不会,问题是这样的

#include <iostream>
using namespace std;
int main()
{
cout << 92934*29942 << endl;
}

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

[[it] 本帖最后由 五点晨曦 于 2008-3-19 20:51 编辑 [/it]]
搜索更多相关主题的帖子: 麻烦 
2008-03-19 20:45
五点晨曦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-19
得分:0 
写成92934.0*29942.0倒是可以用科学计数法表示,不过精度不够啊-_,-

嘛,那来点简单的吧 910.37+9109234.92 同样是用科学计数法表示,精度也是不够……

[[it] 本帖最后由 五点晨曦 于 2008-3-19 20:53 编辑 [/it]]
2008-03-19 20:50
五点晨曦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-19
得分:0 
LS居然注册个号来回答我的问题,感动ING~不过我知道会溢出,现在是在问怎么才能不溢出啊……
2008-03-19 21:25
五点晨曦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-19
得分:0 
谢谢LS了,不过iNum是什么意思我没看明白……能麻烦讲解一下吗?请用教小学生1+1的方法来教我,因为我还是小白一个……谢谢了……
2008-03-19 22:17
五点晨曦
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-3-19
得分:0 
咩哈哈哈~我百度来百度去,终于找到答案啦~其实很简单,多打一句话就可以了
#include <iostream>
using namespace std;
int main()
{
cout.precision(10);
    cout << 92934.0*29942.0 <<endl;
}

先用科学计数发算出答案,cout.precision ,就是显示的精度,我设为小数点后十位,就能显示出来了,不说了,赶紧交功课去
2008-03-20 11:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-204277-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134621 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved