码迷,mamicode.com
首页 > 其他好文 > 详细

double型浮点数能精确到多少位小数?

时间:2014-08-19 12:28:44      阅读:1748      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   strong   2014   问题   

问题2:double型浮点数能精确到多少位小数?或者,这个问题本身值得商榷?

既然double是浮点数,它的小数点的位置是“浮动”的,所以很难说double类型能精确到小数点后面几位。通常这个关于精度的问题都是通过它能表示的有效数字(十进制)的位数来表示的。遵循IEEE标准的8字节(64位)的double能表示的有效数字的位数是:15 ~ 16

测试一个:

#include <stdio.h>
int main(){
    printf("%.20lf",1.0/3.0);
}

结果:

bubuko.com,布布扣

bubuko.com,布布扣

可见在第17位小数(有效数字)处数字发生了失真,所以应该是16位

问题3:double型浮点数最大正数值和最小正数值分别是多少?(不必特别精确)

这种方法几乎算不出:

#include <stdio.h>
int main(){
    double a = 0, b = 0;
    while(a<=b){
        a = b;
        b++;
    }
    printf("%f",a);
}

问题4:逻辑运算符号“&&“,”||“,”!“ 的相对优先级是怎样的?

#include <stdio.h>
int main(){
    int a = 0, b = 1, c = 1;
    printf("%d",a&&b||c);
}

输出为1, 可见&&>||

#include <stdio.h>
int main(){
    int a = 0, b = 0;
    printf("%d",!a&&b);
}

输出为0, 可见!> &&

综上!>&&>||

另外注意C语言中的逻辑运算符都是短路运算符,一旦能够确定整个表达式的值,就不再继续计算

 

double型浮点数能精确到多少位小数?,布布扣,bubuko.com

double型浮点数能精确到多少位小数?

标签:style   blog   http   color   io   strong   2014   问题   

原文地址:http://www.cnblogs.com/anonymous-tian/p/3921702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!