浮点数问题

gfvera 2012-09-18 07:07:37
书上说,float最大取值6位。double最小取值8位。
那么我
double a = 1.23456789
printf() 为什么输出 a = 1.234568。 还是小数点后六位啊????
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
C/C++ code
int main()
{
double a = 1.23456789;
printf("%.8f", a);
return 0;
}
[/Quote]

控制好格式和精度就行了,参考这里
mujiok2003 2012-09-19
  • 打赏
  • 举报
回复
int main()
{
double a = 1.23456789;
printf("%.8f", a);
return 0;
}
AnYidan 2012-09-19
  • 打赏
  • 举报
回复
好像是 c的缺陷与陷阱 的附录 中有解释, printf 位数 在不同输出格式下 略有区别
gfvera 2012-09-18
  • 打赏
  • 举报
回复
补充

printf();使用 %f 输出 1.234568 但是用 %lf 却只能输出 0.000000.


这有是为什么?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧