非著名程序员艺术家-栈斗者 2019-07-02 11:48 采纳率: 0%
浏览 269

C语言浮点打印问题,我正在入门学习,希望指点一下。

我认为double的%.12f打印出来应该是0.333333333333,为什么结果全是0,
float的%.12f也应该是0.333333333333,为什么也全是0。

#include <stdio.h>
#include <float.h>
int main(void)
{   
    double  a=1.00/3.00;
    float   b=1.0/3.0;
    printf("%.6f\n%.12f\n%.16f",a);
    printf("%.6f\n%.12f\n%.16f",b);
    printf("%d\n",FLT_DIG);
    printf("%d\n",DBL_DIG);
    return 0;
 } 

运行结果:
图片说明
另外第三行出现应该是浮点值的上溢或者下溢的舍入问题?最好也能解释一下?

  • 写回答

1条回答 默认 最新

  • 关注

    问题已经解决,是我在打印语句遗漏了两个a,两个b.

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据