为什么cos(M_PI_2)== float(0)的计算结果为假?C ++

不是我

我试图寻找该问题的答案,但无济于事。我想做的是计算cos(x)的0到0之间以及用户提供的弧度数。我是c ++的新手,如果这很简单,请保持温柔。

这是我的代码的摘录(还请注意,我不确定#import之间的区别#include,但我离题了)。

#define _USE_MATH_DEFINES
#import <iostream>
#import <algorithm>
#include <math.h>
#include <stdio.h>

int count = 0;
if (r > 0) {
    for (float i = 0; i < r; i += M_PI_2) {
        printf("\n\n%s: %f: %f\n\n", cos(i) == -float(0) ? "true":"false", \
            cos(i), -float(0));
        if (cos(i) == float(0) || cos(i) == -0) {
            count++;
            printf("Count: %d", count);
        }
    }

使用值2R作为r,我应该使计数增加一次,但是if语句的计算结果为false。我不确定是否应该将float强制转换为零,也不能针对-0进行检查。无论如何,这是此代码段中print语句的输出。

终端片段

看起来cos(M_PI_2)实际上是相等的,-float(0)所以为什么要cos(M_PI_2) == -float(0)评估为false???再次,我几天前才刚开始学习c ++,所以我很抱歉,如果这很琐碎。

Wallyk

这一侧的双刃剑浮点。请勿比较浮点值是否相等或不相等。而是将近似匹配的值范围括起来:

abs(cos(i) - float(0)) <= 0.0001 ? "true":"false"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么cos(M_PI_2)== float(0)计算为假?C ++

来自分类Dev

当所有条件都为真时,为什么这个 IF 语句的计算结果为假?

来自分类Dev

为什么C和计算器上的float计算结果不同?

来自分类Dev

为什么 $("a:focus").length 除非包含在 setTimeout() 中,否则计算结果为 0?

来自分类Dev

10/2的计算结果为42279.00?

来自分类Dev

为什么这个 C++ 表达式的计算结果为 False?

来自分类Dev

表达式“a”<“A”的计算结果是真还是假?为什么?

来自分类Dev

如何处理cos(M_PI / 2)的结果

来自分类Dev

为什么在JavaScript中空字符串文字的计算结果为false?

来自分类Dev

为什么表达式011 == 11的计算结果为false?

来自分类Dev

为什么在JavaScript中空字符串文字的计算结果为false?

来自分类Dev

为什么此表达式的计算结果为true?

来自分类Dev

为什么4> +4计算为假?

来自分类Dev

Swift 3 中“M_PI_4”和“M_PI_2”的语法是什么?

来自分类Dev

为什么sympy中的这个布尔表达式的计算结果为false:(〜a&b)|(a&〜b)== a ^ b?

来自分类Dev

为什么dataframe和numpy的计算结果不同?

来自分类Dev

C中的Pi逼近-为什么我得到的逼近结果为0?

来自分类Dev

C中的Pi逼近-为什么我得到的逼近结果为0?

来自分类Dev

函数计算结果为真,但使用函数作为 if 语句的参数显示为假

来自分类Dev

此表达式的计算结果是什么?

来自分类Dev

为什么我的查询结果返回我为假

来自分类Dev

为什么字符串比较结果始终为假

来自分类Dev

为什么'0为假,但'False为真?

来自分类Dev

为什么“0”和“0”被评估为假?

来自分类Dev

每个选择乘以2个元素并计算结果

来自分类Dev

为什么b [2]为假?

来自分类Dev

为什么将此评估为假?“ S” == / [S] / => 0

来自分类Dev

为什么Some(x).map(_ => null)的计算结果不为None?

来自分类Dev

如果[0] == 0和0 == [[0]]都为真,那么为什么[0] == [[0]]为假?

Related 相关文章

  1. 1

    为什么cos(M_PI_2)== float(0)计算为假?C ++

  2. 2

    当所有条件都为真时,为什么这个 IF 语句的计算结果为假?

  3. 3

    为什么C和计算器上的float计算结果不同?

  4. 4

    为什么 $("a:focus").length 除非包含在 setTimeout() 中,否则计算结果为 0?

  5. 5

    10/2的计算结果为42279.00?

  6. 6

    为什么这个 C++ 表达式的计算结果为 False?

  7. 7

    表达式“a”<“A”的计算结果是真还是假?为什么?

  8. 8

    如何处理cos(M_PI / 2)的结果

  9. 9

    为什么在JavaScript中空字符串文字的计算结果为false?

  10. 10

    为什么表达式011 == 11的计算结果为false?

  11. 11

    为什么在JavaScript中空字符串文字的计算结果为false?

  12. 12

    为什么此表达式的计算结果为true?

  13. 13

    为什么4> +4计算为假?

  14. 14

    Swift 3 中“M_PI_4”和“M_PI_2”的语法是什么?

  15. 15

    为什么sympy中的这个布尔表达式的计算结果为false:(〜a&b)|(a&〜b)== a ^ b?

  16. 16

    为什么dataframe和numpy的计算结果不同?

  17. 17

    C中的Pi逼近-为什么我得到的逼近结果为0?

  18. 18

    C中的Pi逼近-为什么我得到的逼近结果为0?

  19. 19

    函数计算结果为真,但使用函数作为 if 语句的参数显示为假

  20. 20

    此表达式的计算结果是什么?

  21. 21

    为什么我的查询结果返回我为假

  22. 22

    为什么字符串比较结果始终为假

  23. 23

    为什么'0为假,但'False为真?

  24. 24

    为什么“0”和“0”被评估为假?

  25. 25

    每个选择乘以2个元素并计算结果

  26. 26

    为什么b [2]为假?

  27. 27

    为什么将此评估为假?“ S” == / [S] / => 0

  28. 28

    为什么Some(x).map(_ => null)的计算结果不为None?

  29. 29

    如果[0] == 0和0 == [[0]]都为真,那么为什么[0] == [[0]]为假?

热门标签

归档