❶ c语言怎么表示单精度浮点数
在C语言源码中,只能在浮点数后面加f来表示单精度浮点数。譬如如下代码:
floatf=1.1f;
或者
floatf=1.1F;
大小写都可以的。
16进制的浮点数编码,它不像整数编码那样直观,因为浮点数编码,在计算机中是以IEEE754格式进行编码编码的,每一个二进制位都有不同的意思,拿单精度浮点数来说,它的符号位占1位,指数位占8位,有效数字位占23位,而且,如果使用十六进制来传送,你还要确定计算机的内存,存储顺序。 相对很复杂的。
要了解更多浮点数编码的问题,可以自己找一下IEEE754编码格式详细的介绍。也许会帮到你!
❷ c语言里单精度和双精度怎么理解
单精度和双精度顾名思义是两种精度的不同划分,单精度float是保证7位有效数字,double是保证16位有效数字。
例:(float)(10%3)
结果是1.000000即七位有效数字,(后面不一定全是0,计算机可随机选择数字,所以整数1不等于float或double的1)
(double)(10%3)
同理结果是:1.XXXXXXXXXX……后面有十五位的有效数字
虽然整数位都是1,但由于有效位数不同,即后面随机派出的小数可能不同,所以二者理论上不同,实际比较不能用==,要用fabs()<1e-6.
❸ c语言中如何输入一个浮点数x然后输出x但保留五位小数
声明变量x为double型(浮点双精度)或float(浮点单精度)。
调用输入函数scanf("%lf",&x);或scanf("%f",&x);——其中%lf表示x是double型、%f表示float型。
调用printf("%.5f ",x);输出——其中.5表示小数点后保留5位小数。