【题目链接】
【题目考点】
1. 数据类型原理
2. 类型转换
【解题思路】
a = 1.000000001;
b = a;
printf("%.9f %.9f\n", a, b);//输出两个数:1.000000001 1.000000000
问a,b的类型。
首先a,b能用%f输出,表示a,b都是浮点型。排除布尔型,字符型,整型。
已知float类型的精度(即有效数字)是6~7位
- 判断a的类型
- 1.000000001的精度达到了10位,float类型无法表示这样一个浮点数。因此a不是float类型,只能是double类型。
- 判断b的类型
- 将1.000000001赋值给b后,b的值不是1.000000001,而是1.000000000,说明b的类型不能表示10位有效数字,因此b是float类型。
该题选F E。
- 将1.000000001赋值给b后,b的值不是1.000000001,而是1.000000000,说明b的类型不能表示10位有效数字,因此b是float类型。
【题解代码】
解法1:
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout<<"F E";
return 0;
}