forestelk 2018-11-27 15:16 采纳率: 50%
浏览 558
已采纳

可以解释一下这个结果吗谢谢

不知道结果为什么是这个,还有这个a的表示是什么值,e,f是代表多少啊
#include
using namespace std;

void main()
{
float a = 2.34e+22f;
float b = a + 1.0f;
cout << "a = " << a << endl;
cout << "b - a = " << b - a << endl;
system("pause");
}

  • 写回答

1条回答 默认 最新

  • qq_39525174 2018-11-27 15:34
    关注

    e代表10,就是科学计数法中形式,例如:2.34e+22代表2.34 * 10 ^ 22, 1.0e+10代表1.0 * 10 ^ 10。
    f代表浮点数,例如: 1.0f代表1.0,f只是标明这个是浮点数,举个其他例子吧,1000L表示值为1000的长整数。
    现在2.34e+22f只是表示2.34 * 10 ^ 22.0f而已,跟2.34e+22的值一样。关于b - a的值为什么是0的问题,这个跟float所能存储的范围有关,float并不能达到那个数据的精度,所以a跟a + 1其实没啥差别了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 skynet pb mysql
  • ¥15 笔记本外接显示器分辨率太低各种方法都用过了调不高
  • ¥15 Redstone R0697-F00 D2020 交换机 OS
  • ¥50 H5+js 动态数字画廊怎么做?
  • ¥20 外向内全景图像拼接相关项目和论文咨询
  • ¥20 请写个前端案例学习使用
  • ¥15 FFmpeg中G.711转AAC报错:[aac @ 0000014f803ab640] Input contains (near) NaN/+-Inf
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥20 笔记本电脑 处理器是AMD的r7
  • ¥15 需要在vitis下实现彩调视频图像累加,并输出