首页 > 代码库 > double型浮点数能精确到多少位小数?
double型浮点数能精确到多少位小数?
问题2:double型浮点数能精确到多少位小数?或者,这个问题本身值得商榷?
既然double是浮点数,它的小数点的位置是“浮动”的,所以很难说double类型能精确到小数点后面几位。通常这个关于精度的问题都是通过它能表示的有效数字(十进制)的位数来表示的。遵循IEEE标准的8字节(64位)的double能表示的有效数字的位数是:15 ~ 16
测试一个:
#include <stdio.h>int main(){ printf("%.20lf",1.0/3.0);}
结果:
可见在第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语言中的逻辑运算符都是短路运算符,一旦能够确定整个表达式的值,就不再继续计算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。