当前位置: 首页 > 面试题库 >

python中的负零

澹台庆
2023-03-14
问题内容

我在python的输出中遇到了负零;例如,它的创建如下:

k = 0.0
print(-k)

输出将是-0.0

但是,当我将-k0.0与0.0比较相等时,它会得出True。有什么区别0.0-0.0(我不在乎他们可能有不同的内部表示;我只关心自己的程序的行为。)是否有任何隐藏的陷阱我应该知道的?


问题答案:

在Wikipedia中签出-0(数字)

基本上,IEEE实际上确实定义了一个负零。

并通过此定义用于所有目的:

-0.0 == +0.0 == 0

我同意aaronasterling是-0.0+0.0是不同的对象。使它们相等(相等运算符)可确保代码中没有引入细微的错误。
考虑到a * b == c * d

>>> a = 3.4
>>> b =4.4
>>> c = -0.0
>>> d = +0.0
>>> a*c
-0.0
>>> b*d
0.0
>>> a*c == b*d
True
>>>

[编辑:基于评论的更多信息]

当我出于所有实际目的发言时,我匆匆选择了这个词。我的意思是标准相等性比较。

如参考文献所述,IEEE标准定义了比较+0 = -0,而不是-0 < +0。尽管总有可能忽略零的符号,但是IEEE标准并未这样做。当乘法或除法涉及带符号的零时,通常的符号规则适用于计算答案的符号。

操作喜欢divmodatan2表现出这种行为。实际上,底层的“ C”库也atan2
符合IEEE定义。

>>> divmod(-0.0,100)
(-0.0, 0.0)
>>> divmod(+0.0,100)
(0.0, 0.0)

>>> math.atan2(0.0, 0.0) == math.atan2(-0.0, 0.0)
True 
>>> math.atan2(0.0, -0.0) == math.atan2(-0.0, -0.0)
False

一种方法是从文档中找出实现是否符合IEEE行为。从讨论中还可以看出,平台也有细微的变化。

但是,这一方面(符合IEEE定义)并未在任何地方得到尊重。看到由于不感兴趣而拒绝PEP
754
!我不确定以后是否会收到。

另请参阅每个计算机科学家应了解的有关浮点算法的知识。



 类似资料:
  • 问题内容: 我有这个问题 有什么建议吗? 问题答案: (-1.07)1.3将不是实数,因此出现Math域错误。 如果需要复数,则必须将a b重写为e bln a,例如 如果只想返回NaN,请捕获该异常。 顺便说一句,在Python中,通常不是使用内置函数来增强功能。

  • 问题内容: 我有以下输入, 我想提取所有输入, 除了 包含“ ”的行和包含单个(点)的最后一行。也就是说,我想提取以下内容 我尝试了以下方法 但它不起作用,因为它不会产生任何输出。 问题答案: 实际操作: 别忘了负前瞻,否则您将无法获得任何匹配;-)

  • 如何在python中找到包含负数的稀疏矩阵的sqrt?和对负数不起作用。我还尝试使用。但它也不起作用。

  • 问题内容: 有人可以帮我找到有关如何使用python计算负数的立方根的解决方案吗? 这是行不通的。负数的三次根是负数。有什么办法吗? 问题答案: 您可以使用: 或更笼统地说:

  • 我目前正在将我的应用程序从WAS 8迁移到WAS Liberty,我遇到了以下问题。在我的一个模块网页中。xml文件中,servlet启动时的加载值为-1。在Liberty中运行时,不会调用特定的servlet。有人能帮我吗?请从我的web.xml<code>中找到以下代码片段

  • 问题内容: IEEE754支持负零。但是这段代码 输出 我本来期望的 浮动格式基于IEEE754的其他语言可让您创建负零文字 Java的: C# : Javascript: 但是我在Go中找不到等效项。 您如何在go中编写一个负零文字? 问题答案: 有一个已注册的问题。 碰巧提供了一种解决方案: 还不错,因为它显然引用了定义的标准函数。 但这意味着您需要导入一个软件包,而对于(当然较小且很少见的)

  • 问题内容: 当结果返回零时,是否有任何方法可以截断负号;使用十进制格式时? 上面的代码返回-0.0。有什么办法可以使它只返回0.0?但是,当结果为负数时,我想保留负号。 问题答案: 我不认为仅用一种方法就可以做到这一点,但是这种单线解决了这个问题: 它消除(其替换减号),如果它后面跟着0-n个字符的,所以这将任何结果,如类似的工作,或 这是一些测试代码: 输出(预期):

  • 本文向大家介绍Python实现列表中非负数保留,负数转化为指定的数值方式,包括了Python实现列表中非负数保留,负数转化为指定的数值方式的使用技巧和注意事项,需要的朋友参考一下 简单的小练习,实现将一个指定列表中的数值进行转化,对于其中的非负数不作处理,对于负数需要转化为制定的数值,很简单就不多说了,下面是具体的实现: 结果如下: 根据不同的需要也可以做相应的修改会有不同的适用场景。 补充知识: