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("两个数不是一样大"); 浮点数的大小比较

  • 相关阅读:
    MillerRabin
    BM算法总结
    高斯消元处理自由变元的方法
    [IOI2019]矩形区域
    费用流处理负圈的方法
    回文自动机(PAM)总结
    [TJOI2017]龙舟
    luogu P2252 [SHOI2002]取石子游戏|【模板】威佐夫博弈
    博弈论
    构造
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318255.html
Copyright © 2011-2022 走看看