请问c语言中的float和double类型有什么区别?什么叫做单精度和双精度?
2个回答
展开全部
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);
强制转换 要带 小括号。
单精度型 即 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);
强制转换 要带 小括号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询