c语言用单精度浮点数输出科学计数法的问题,求高手来

#include<stdio.h>main(){floatt=3e+12;printf("t=%f\n",t);/*此处输出单精度浮点数*/}按理说输出结果应该是t=30... #include<stdio.h>
main()
{
float t=3e+12;
printf("t=%f\n",t); /*此处输出单精度浮点数*/

}
按理说输出结果应该是
t=3000000000000.000000
可是结果却是
t=2999999985664.000000
我尝试过当指数小于9时才能正常输出值,,这到底是怎么回事啊
展开
 我来答
bhtzu
2013-09-30 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4042万
展开全部

float的精度问题啊,float只有四个字节,精度很低。

如果你的程序是由double就可以保障比较高的精度了,但也不是绝对的精度,浮点数存储,永远有精度范围,不是绝对精度(和int整数类型不一样)

#include<stdio.h>
main()
{
double t=3e+12;
printf("t=%lf\n",t);/*此处输出双精度浮点数*/

}
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式