例:(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)
}