您的位置:首页 > 其它

浮点数的大小比较

2014-08-29 10:16 218 查看
浮点数在转换过程中都会有误差的,所以浮点数不能直接比较其大小,一般在比较两个浮点数的时候是比较他们之间的差值,如果两个数之间的差值处于一个能接受的范围之内的话,那么,我们就认为这两个浮点数是相等的,

一般认为A与B的差大于某个很小的数时就认为A>B,比如:

if( A-B > 0.001 )

{

A>B...

}

一般来说这个可以接受的误差值就是计算机的转换误差,C++标准库提供了这个误差,你可以从numeric_limits模板库的epsilon函数取得:

numeric_limits<float>::epsilon()

所以,你在比较一个浮点数的时候可以这样比较:

.......

#include <limits>

#include <stdlib.h>

using namespace std

.......

float a,b;

a = b = 50;

if( abs(a-b) <= numeric_limits<float>::epsilon() )

ShowMessage("两个数一样大");

else

ShowMessage("两个数不是一样大"); 浮点数的大小比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: