浮点数的逻辑运算(使用 C 和 python)



我是一个Python新手,目前正在使用逻辑运算比较Python和C语言。

我的问题是

(我可以解决Q1 (C中的逻辑运算),谢谢你的意见!)

Q1: C

中的逻辑运算为什么0.7 &&在c代码中0.7不是1吗?我希望它是"正确的",因为

(bool)0.7 is 1 and (bool)0.8 is 1 // This is what I meant, revised after checking the comments, Thank you!

因为0.7和0.8是非零值。

Q2: Python中的逻辑运算

为什么0.7和0.7不在Python的布尔类型中计算出来?这是因为动态规划吗?

请告诉我好吗?

提前谢谢你。


详细说明,从python和c代码:

,我希望

0.7&&0.7# = 1

。同样,

0.8&&0.8# = 1

但是我从两个编译器得到的是:

从Python

0.7 and 0.7
Out[46]: 0.7
0.8 and 0.8
Out[47]: 0.8

来自C语言,代码如下:

int main()
{
double a = 0.8;
double b = 0.8;
printf("%f AND %f is %f", a, b, a&&b);
return 0;
}

输出为:0.800000 AND 0.800000 = 0.000000

且a=0.7, b=0.7结果是一样的。(0.800000 AND 0.800000 = 0.000000)

我可以解决Q1 (C中的逻辑运算),谢谢您的意见!

理解Python中计算&;0.7和0.7&;的逻辑操作的任何建议作为0.7不是1(或真)?

Python:

0.7 and 0.7
Out[46]: 0.7

0.7 and 0.7
Out[46]: 1 #or true

(在Python中编写条件表达式时似乎很重要…)


关于Q2,我可以在你的帮助下解决:

将%f更改为%d后,我可以从0.7&&0.7得到1 (true),这是我所期望的。

int main()
{
double a = 0.8;
double b = 0.8;
printf("%f AND %f is %d", a, b, a&&b);
return 0;
}

相关内容

  • 没有找到相关文章

最新更新