c语言中的float和double类型有什么区别?什么叫做单精度和双精度?

2024年11月23日 07:57
有1个网友回答
网友(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);
强制转换 要带 小括号。