Why do I see a double variable initialized to some value like 21.4 as 21.399999618530273?

前端 未结 14 2048
名媛妹妹
名媛妹妹 2020-11-21 23:41
double r = 11.631;
double theta = 21.4;

In the debugger, these are shown as 11.631000000000000

14条回答
  •  梦毁少年i
    2020-11-21 23:54

    If you have a value like:

    double theta = 21.4;
    

    And you want to do:

    if (theta == 21.4)
    {
    }
    

    You have to be a bit clever, you will need to check if the value of theta is really close to 21.4, but not necessarily that value.

    if (fabs(theta - 21.4) <= 1e-6)
    {
    }
    

提交回复
热议问题