12.26C语言 不同数据类型与0的比较
2023-12-26 19:47:04
1.整型
用==或!=判断
2.float和double型
不可以直接用==判断,因为会涉及到精度问题,可能会导致不准确的结果,需要定义一个很小的值作为阈值,
单精度(float)<1e-6即可
双精度(double)<1e-15
# include <stdio.h>
# include <math.h>
# define FLOAT_EPS 1e-6
# define DOUBLE_EPS 1e-15
int main(void)
{
float f1 = 0.000001;
float f2 = 0.001;
double d1 = 0.00001;
double d2 = 0.00001;
//判断浮点数是否等于0
//1、单精度浮点数
if (fabs(f1) <= FLOAT_EPS)
{
printf("%f为0\n", f1);
}
else
{
printf("%f不为0\n", f1);
}
//2、双精度浮点数
if (fabs(d1) <= DOUBLE_EPS)
{
printf("%lf为0\n", d1);
}
else
{
printf("%lf不为0\n", d1);
}
//判断两个浮点数是否相等
//1、单精度浮点数
if (fabs(f1 - f2) <= FLOAT_EPS)
{
printf("%f 和 %f 相等\n", f1, f2);
}
else
{
printf("%f 和 %f 不相等\n", f1, f2);
}
//2、双精度浮点数
if (fabs(d1 - d2) <= DOUBLE_EPS)
{
printf("%lf 和 %lf 相等\n", d1, d2);
}
else
{
printf("%lf 和 %lf 不相等\n", d1, d2);
}
return 0;
}--部分转载自博主涔曦
判断两个浮点数是否相等用减法,
求绝对值函数:整型用abs? 浮点型用fabs
3.字符型
主要是比较ASCII码,注意,字符型变量与整型变量在内存中的表示是相同的,因此字符型变量与整数的比较是合法的。
文章来源:https://blog.csdn.net/lanssssss/article/details/135228608
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!