zoukankan      html  css  js  c++  java
  • 浮点数的大小比较

    浮点数在转换过程中都会有误差的,所以浮点数不能直接比较其大小,一般在比较两个浮点数的时候是比较他们之间的差值,如果两个数之间的差值处于一个能接受的范围之内的话,那么,我们就认为这两个浮点数是相等的,
    一般认为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("两个数不是一样大"); 浮点数的大小比较

  • 相关阅读:
    NTT算法小结
    FFT算法小结
    [USACO18DEC]Balance Beam
    洛谷4014分配问题
    洛谷4015运输问题
    洛谷3356火星探险问题
    python中函数详解
    python函数详解
    Python中对文件处理
    Python中的字符编码
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318255.html
Copyright © 2011-2022 走看看