c语言中单精度和双精度是什么

Python017

c语言中单精度和双精度是什么,第1张

精度和双精度是这对浮点运算来说的,也就是通常说的小数,单精度浮点最少有小数点后6位,双精度至少是小数点后10位,应为编译器或者平台不同说以小数点后面多少位是不同的,当是C语音已经规定了小数点后几位最小的值,最大有多少要看具体的系统来定

单精度和双精度顾名思义是两种精度的不同划分,单精度float是保证7位有效数字,double是保证16位有效数字。

例:(float)(10%3)

结果是1.000000即七位有效数字,(后面不一定全是0,计算机可随机选择数字,所以整数1不等于float或double的1)

(double)(10%3)

同理结果是:1.XXXXXXXXXX……后面有十五位的有效数字

虽然整数位都是1,但由于有效位数不同,即后面随机派出的小数可能不同,所以二者理论上不同,实际比较不能用==,要用fabs()<1e-6.

1、单精度和双精度都指浮点数,就是带小数点的数

2、单精度数的有效位数比较少,7位左右,双精度的在几十位。

3、单精度定义是用float

4、双精度定义是用double

比如:

#include

main(){

float

pi_f

=

m_pi

double

pi_d

=

m_pi

printf("%e,",pi_f)

printf("%e",pi_d)

}