C语言中比较两个浮点数是否相等的方法,fabs和abs
2013-05-08 22:09
459 查看
今天在面试中碰到这个问题,当时还迷糊了一番,毕竟平时没怎么用过,记得以前看过,现在有点记不清了!这是C语言很基础的东西,面试一般会遇到!
对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!
对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值!
例子
fabs函数与abs函数
数学函数:fabs
原型:extern float fabs(float x);
用法:#include <math.h>
功能:求浮点数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x
举例:
对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!
对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值!
if( fabs(f1-f2) < 预先指定的精度) { ... }
例子
#define EPSILON 0.000001 //根据精度需要 if ( fabs( fa - fb) < EPSILON ) { printf("fa<fb\n"); }
fabs函数与abs函数
数学函数:fabs
原型:extern float fabs(float x);
用法:#include <math.h>
功能:求浮点数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x
举例:
// fabs.c #include <syslib.h> #include <math.h> main() { float x; clrscr(); // clear screen textmode(0x00); // 6 lines per LCD screen x=-74.12; printf("|%f|=%f\n",x,fabs(x)); x=0; printf("|%f|=%f\n",x,fabs(x)); x=74.12; printf("|%f|=%f\n",x,fabs(x)); getchar(); return 0; }
abs函数是针对整数的
#include <stdio.h> #include <math.h> int main() { int x=-10; printf("%d",abs(x)); }
相关文章推荐
- C语言中比较两个浮点数是否相等的方法,fabs和abs
- 在C语言中比较两个字符串是否相等的方法
- 一个一元二次方程求解编程引申的两个知识点(abs和fabs的区别以及浮点数比较相等)
- Gson: 比较两个json是否等价(比较java bean是否相等的通用方法)
- c语言比较两个字符串是否相等strcmp
- PHP Float 永远不要比较两个浮点数是否相等
- python比较两个列表是否相等的方法
- 深入java的equals方法,怎么比较两个对象的内容是否相等?对象的内容指的是什么?
- java比较两个对象是否相等的方法
- 比较两个对象的内容是否相等 重写object 的equals方法
- 比较两个浮点数是否相等
- 10.根据主类,完成Compare类,该类有两个boolean类型的方法,方法isSameNum用来比较两组数是否完全相同,方法isSameSum用来比较两组数的和是否相等。相同或者相等返回true,
- Java比较两个List的值是否相等的方法
- Java中比较两个浮点数是否相等
- C#使用Equals()方法比较两个对象是否相等的方法
- 浅谈比较两个String是否相等的方法
- 判断两个(float)变量x,z是否相等 以及和0值比较方法
- 如何比较两个浮点数是否相等?
- 判断两个(float)变量x,z是否相等 以及和0值比较方法
- python比较两个列表是否相等的方法