C语言单精度浮点型的输出
#include<stdio.h>voidmain(){floata=11111.11111;doubleb=11111.111111111111;printf("%f\...
#include<stdio.h>
void main()
{
float a=11111.11111;
double b=11111.111111111111;
printf("%f\n%f\n",a,b);
}
其结果是11111.111328与11111.111111
书上解释的是,a是单精度浮点型变量,有效位数是7位,其中整数部分已占5位,古小数点后2位之后的为无效数字。
我想问为什么是11111.111328 展开
void main()
{
float a=11111.11111;
double b=11111.111111111111;
printf("%f\n%f\n",a,b);
}
其结果是11111.111328与11111.111111
书上解释的是,a是单精度浮点型变量,有效位数是7位,其中整数部分已占5位,古小数点后2位之后的为无效数字。
我想问为什么是11111.111328 展开
3个回答
展开全部
双精度浮点数 double 占用8个字节
精确到小数点后6位
单精度浮点数 float 占用4个字节
精确到小数点后3位
精确到小数点后6位
单精度浮点数 float 占用4个字节
精确到小数点后3位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为a是单精度,有效位是7位,超过的部分是系统随机给出的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询