C语言 浮点型
floatf=1000.23;printf("%f\n",f);为什么是1000.229980啊谢谢...
float f = 1000.23;
printf("%f\n",f);
为什么是 1000.229980啊
谢谢 展开
printf("%f\n",f);
为什么是 1000.229980啊
谢谢 展开
6个回答
展开全部
因为定义浮点型%f表示按十进制小数形式输出变量的值,除非特别指定,比如%.2f,那么输出就只有两位小数,否则,则输出六位小数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是精度问题,浮点数会损失精度,用double 会比上面的好一些
double f=1000.23;
double f=1000.23;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为
%f是保留小数后面六位
%f是保留小数后面六位
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
f=(INT)
(f*100+0.5)/100.0先说里边的f*100,就是把f的两位小数转换为整数位,加0.5,转换后的小数位(即第三位小数加0.5),然后强制转化为int型,再除以一百恢复两位小数,假设f为1.536则,乘一百为153.6加0.5为154.1,转换以后为154除以100为1.54假设f为1.534,乘一百为153.4加0.5为153.9,强制转换后卫153,除以100为1.53
(f*100+0.5)/100.0先说里边的f*100,就是把f的两位小数转换为整数位,加0.5,转换后的小数位(即第三位小数加0.5),然后强制转化为int型,再除以一百恢复两位小数,假设f为1.536则,乘一百为153.6加0.5为154.1,转换以后为154除以100为1.54假设f为1.534,乘一百为153.4加0.5为153.9,强制转换后卫153,除以100为1.53
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |