永发信息网

c++ 简单问题

答案:2  悬赏:10  手机版
解决时间 2021-03-07 18:51
  • 提问者网友:留有余香
  • 2021-03-07 02:33
#include
int main()
{
using namespace std;
float a=2.34E+22f;
float b=a+1.0f;
cout<<"a="< cout<<"b-a="< return 0;
}

请问为什么输出是:
a=2.34e+022
b-a=0
请大家详细解析下。。。
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-03-07 03:22
因为数据类型float只能保留7位有效位
a=2.34E+22f表示a=23400000000000000000000有23位有效位,
b=a+1.0f表示 b=23400000000000000000001有23位有效位,
保留7位有效位后,a=b
不信你试下,把22改成6就正确了,改成7就马上错了(6的话是2340000,7位有效位)
全部回答
  • 1楼网友:人類模型
  • 2021-03-07 04:31

#include "iostream.h" void main () {  int i;  int s=0;  for (i=0;i<100;i++)   s+=i;  cout <<s<<endl; }

main函数少了一对{}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯