概述
cc++带精度数据类型比较大小
-
float占4byte,精度是6-7位,double占8byte,精度是15~16位。 (注意:3.14的有效位数为3。)
-
double(双精度)、float(单精度)类型都是有精度的,当达到精度最大位数的后一位采样四舍五入的方法。因此带有精度的数据不能直接使用"==“进行比较大小,要转化为”>=“或者”<="进行。
例如:当第8位小于5时,输出1,认为相等,大于等于5时,认为不相等。(精度:范围值)
正确做法:
const double EPS = 1e-6; //一般这样子就够,但有时具体题目要考虑是否要更小的
if(fabs(a-b) < EPS) //判断是否相等
if(a > b+EPS) // 判断a是否大于b,因为大的肯定大,所以即使你小的加上,还是会更大
注意: float c=3.14; //默认是double型的, float c=3.14f; 后面加f,才是告诉编译器是float型。
最后
以上就是坚定柜子为你收集整理的c\c++带精度数据类型比较大小的全部内容,希望文章能够帮你解决c\c++带精度数据类型比较大小所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复