1楼:匿名用户
float的有效数字(包括整数部分)是6-7位,是指,7位数字能精确一部分,不是全部
double的有效数字(包括整数部分)是15-16位,同上。
2楼:匿名用户
这个bai
不同的平台,du不同的编译器好像zhi
有差异。一般平台daosdk里面有专门的宏来内定义 某个类
容型的最大,最小值,对于float 有3个边界值,最大浮点数,最小浮点数(负),最接近0又不等于零(最小精度值)等等。这个可以看看相关头文件定义。
而一般常规用途之中,小数点后面很少精确到小数点七八位的,因为如果在七八位这个精度上还要保证精度,就不应该用一般的float或者double存放了,而应该用【组合数】的保存方式
比如 struct number ;
number表示精度更高的浮点数
num表示分子
den表示分母
请问c语言中的float和double类型有什么区别?什么叫做单精度和双精度?
3楼:碧血玉叶花
c语言中 单精度型
和bai双精度型 指两种du 类型 的 浮点数zhi
。单精度型dao 即回 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);
强制转换 要带 小括号。
4楼:某某匿名网友
sizeof(float)是4,sizeof(double)是8,精度高,有效数字多
c语言中什么是单精度型和双精度型???各举个例子。。。
5楼:匿名用户
单精度型和双精度型的区别在于它们的精确程度不一样,也就是小数部分的有效位数不一样。62616964757a686964616fe58685e5aeb931333431356664
单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。
比如3.1415926535897932384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果定义成double型,那么只会留下小数点后15位,也就是3.
141592653589793。
扩展资料
计算机的数都是以二进制进行存储。无论是单精度浮点数还是双精度浮点数,在计算机上的存储都遵循ieee 754规范,使用二进制科学计数法。
二进制科学计数法包含三个部分:符号位,指数位和尾数部分。单精度数的符号位,指数位和尾数部分分别为1,8,23,而双精度为1,11,52。
而单双精度中的精度就主要取决于尾数部分的位数。float的尾数尾数为23位,除去全部为0的情况以外,最小为2的-23次方,因此float小数部分只能精确到后面6位。类似的,double尾数位数为52,最小为2的-52次方,因此只能精确到小数点后15位。
6楼:匿名用户
单精度就是
复float类型,是4个字节的制,因此精度bai没有那么高双精度就是double类型du,zhi是8个字节的,可以表示的数字当dao然就更多,小数点后面的精度也越高
float f; // 是4个字节的单精度变量double d; // 是8个字节的双精度变量
7楼:匿名用户
float(10%3)结果是1.000000即七位小数点后保留。
double (10%3)就是15位。
说到底就是个精度的问题望采纳
8楼:5千零一
float是单精度型4字节,double是双精度型8字节
9楼:金色潜鸟
c语言中 单精度
型和bai双du精度型 指两种 类型 的 浮点数zhi。
单精度型dao 即 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);
强制转换 要带 小括号。
10楼:程序猿3号
float是单精度型,double是双精度型,例子:
float a;
double b;
。。。。。。。。。。。
C语言中,定义double p的指针,那么p的类型是
1楼 匿名用户 直接输出p就是一个长整型的数字,你定义的double 就是指的这个内存地址保存的数据的类型,输出这个数据则会带有小数点,输出地址不会 2楼 匿名用户 汗死。。。指针地址是用intger类型的。。占八位。。 跟你这个double有什么关系。。你打印下就知道了。用double来定义是因为...
关于C语言中long型数据赋给int型变量
1楼 匿名用户 区分编译器类型,long数据赋值给int数据会有不同的结果。 1 16位编译器 int型变量占2字节,long类型变量占4字节。当long赋值给int时,会截取低两字节数据给int。 如long a 0x12345678 int b a 则b的值为0x5678。 2 32位编译器 i...
c++中double类型的0乘以负数输出为-0,为什么?详情
1楼 匿名用户 好吧,这道题太让我好奇了,一看没人回答,我自己试了一下。 一样的程序,我用vc6 0输出0。。。我就不截图了。 看来和编译器有关。。。 2楼 匿名用户 我不能肯定,但是我认为这取决于编译器的实现,他估计是看见乘法就直接就进行符号位乘法,即正正为正 负负为正 正负为负,以此修改结果的符...