C语言 双精度类型(double)变量的输入问题

2024-12-18 05:11:52
推荐回答(3个)
回答1:

c语言中
单精度型和双精度型
指两种
类型

浮点数。
单精度型

float
型,
有效数字约10进制7位
双精度型

double
型,
有效数字约10进制15位
所以能描述的数值精度不同。
c语言
数据

ieee
754
国际标准。float


4
字节存放,double


8
字节存放。
single
precision
2进制:
数符1位,指数8
位,尾数
23

double
precision
2进制:
数符1位,指数11
位,尾数
52

单精数值范围:
±
~10的-44.85次方


10的38.53次方
双精度数值范围
±
~10的-323.3
次方
to

10的
308.3次方。
float
a=1.234567;
double
b=1.2345678901234;
-------------
10%3
整除取余数,得
1。
1

float

double
表示,精度没有区别。
a=(float)(10%3);
b=(double)(10%3);
强制转换
要带
小括号。

回答2:

scanf("%e",&d);e是以指数形式输出,可以使用%g来使计算机自动判断使用%e还是%f

回答3:

scanf("%lf",&d);