R 有“负零”吗?

J. *_*ini 2 integer r zero negative-zero

我的控制台告诉我,-0回报0和这两个c(1:5)[0]c(1:5)[-0]回报integer(0)。R 这是否意味着 R 没有“负零”的概念?

G. *_*eck 5

尽管 R 很好地隐藏了它,但实际上 R 确实有一个负零:

# R says these are the same

0 == -0
## [1] TRUE

identical(0, -0)
## [1] TRUE

# but they are not

is.neg0 <- function(x) x == 0 && sign(1/x) == -1

is.neg0(0)
## [1] FALSE

is.neg0(-0)
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)

  • 堆栈的哪一部分执行此操作并不是真正的关键点。重要的是当你使用 R 时的结果是什么。它当然不会产生误导。 (2认同)