名字未知 2022-07-01 20:42 采纳率: 66.7%
浏览 41
已结题

刚接触c语言,请求各位帮助!

能详细解释一下第五题和第六题吗?谢谢!越详细越好,本人基础差,希望各位能帮帮我。

img

  • 写回答

3条回答 默认 最新

  • ...404 Not Found 2022-07-01 20:59
    关注

    浮点数设有精度。
    看一小段C语言程序:

    int main()

    {
    float x = 1.3;

    x = x - (int)x;

    int i = (int)(x*10);

    return ;

    }

    在你心目中, 变量 I 是怎样的结果?

    如果你理所当然地认为是3的话, 那么你就错了~~~

    实际结果应该是2. 为什么?

    简而言之, x在内存的值并不是精确的1.3, 实际上可能是1.29999999......

    因为在计算机组成原因中有说过, 浮点数无法被准确地表示出来, 只能是一个非常精确的值..

    #include<stdio.h>
    int main()

    {
    double x = 1.0000003;

    x = x - (int)x;
    
    int i = (int)(x * 10000000);
    printf("%d", i);
    return;
    

    }
    由上知,系统存储了一定精度,会自动判别结果,第一题
    10/3.0可能是3.3...4或3.3.....2小数最后一位很小,系统确定精度进位或退位,此处进位

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月10日
  • 已采纳回答 7月2日
  • 创建了问题 7月1日