C语言中 float a = 30000;为什么输出不是30000
时间: 2023-06-16 13:05:01 浏览: 138
C语言中int到float的强制类型转换
C语言中 float 类型的变量只能表示一定范围内的数值,超出范围的数值会被舍入或截断。在这个例子中,30000 是一个整型常量,它的值超过了 float 类型能表示的范围,所以会被舍入或截断,导致输出结果不是 30000。
如果你想要得到正确的输出,可以将常量 30000 转换成 float 类型,例如:
```
float a = 30000.0f;
printf("%f", a); // 输出 30000.000000
```
或者使用科学计数法表示常量:
```
float a = 3e4f;
printf("%f", a); // 输出 30000.000000
```
这样就可以得到正确的输出结果。
阅读全文