搜索
查看: 655|回复: 6
打印 上一主题 下一主题

请教一个关于小数点计算的问题。

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-30 15:14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
小数5.2+3.1的计算结果不应该是8.3吗?为什么算出来是8.299999呢?
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
        float a,b,c;
    a=5.2;
    b=3.1;
    c=a+b;
    printf("%f",c);

        system("pause");
        return 0;
}




沙发
发表于 2015-10-30 15:53:43 | 只看该作者
float精确到小数点后6位,  用printf("%.1f",c);可以保留1位
板凳
发表于 2015-10-30 16:52:19 | 只看该作者
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     double a, b, c;
  5.    
  6.     a = 5.2;
  7.     b = 3.1;
  8.     c = a + b;
  9.     printf("%lf", c);

  10.     return 0;
  11. }
复制代码
地板
发表于 2015-10-30 18:51:58 | 只看该作者
把类型改成double
5#
发表于 2015-10-30 19:34:13 | 只看该作者
float不是精确到小数点后6位,而是只有6位有效数字
6#
发表于 2015-10-30 20:48:33 | 只看该作者
rosynirvana 发表于 2015-10-30 19:34
float不是精确到小数点后6位,而是只有6位有效数字

明白了,谢谢
7#
发表于 2016-7-24 20:31:57 | 只看该作者

float不是精确到小数点后6位,而是只有6位有效数字
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表