标签: negative-zero

为什么我们在Ruby中有0.0和-0.0?

在ruby中,为什么我可以给负0.0浮点数分配一个负号,此功能有任何用处吗?有人可以向我解释这个吗?

-0.0
#=> -0.0

-0.0 * -1
#=> 0.0
Run Code Online (Sandbox Code Playgroud)

ruby floating-point negative-zero

69
推荐指数
3
解决办法
7507
查看次数

为什么 Math.min() 从 [+0, 0, -0] 返回 -0

我知道 (-0 === 0) 结果是正确的。我很好奇为什么-0 < 0 会发生?

当我在 stackoverflow 执行上下文中运行此代码时,它返回0.

const arr = [+0, 0, -0];
console.log(Math.min(...arr));
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器控制台中运行相同的代码时,它返回-0. 这是为什么?我尝试在谷歌上搜索它,但没有找到任何有用的东西。这个问题可能不会给某些实际例子增加价值,我想了解 JS 是如何计算它的。

 const arr = [+0, 0, -0];
    console.log(Math.min(...arr)); // -0
Run Code Online (Sandbox Code Playgroud)

javascript math floating-point min negative-zero

59
推荐指数
3
解决办法
4293
查看次数

浮点数是负零吗?(-0f)

IEEE浮点数有一个位用于指示符号,这意味着您可以在技术上具有零(+0和-0)的不同二进制表示.我是否可以在C中进行算术运算,从而产生负零浮点值?

这个问题的灵感来自于另一个问题是否可以安全地比较0.0f使用==,我还想知道是否还有其他方法来表示零,这会导致float1 == 0.0f看似完全相等的值.

[编辑]请不要评价比较花车的平等安全性!我并没有试图添加那些重复的问题.

language-agnostic floating-point negative-zero

30
推荐指数
4
解决办法
1万
查看次数

在String.prototype.slice()中,应该.slice(0,-0)和.slice(0,+ 0)输出相同的结果吗?

我在尝试在代码高尔夫游戏中优化弦乐复数时遇到了这个怪癖.我有想法将字符串写成复数,然后用来substr有条件地删除最后一个字符:

var counter = 1;
var myText = counter + " units".substr(0, 6-(counter===1));
Run Code Online (Sandbox Code Playgroud)

这很好 - 它做了我想要的.但是看看String.prototype.slice()MDN文档,我认为通过使用负零作为函数的第二个参数,我找到了一种使其更短的方法.来自文档:

endSlice

可选的.从零开始的索引,用于结束提取.如果省略,slice()将提取到字符串的末尾.如果为负数,则将其视为sourceLength + endSlice,其中sourceLength是字符串的长度(例如,如果endSlice为-3,则将其视为sourceLength - 3).

var myText = counter + " units".slice(0,-(counter===1));
Run Code Online (Sandbox Code Playgroud)

这将评估为何.slice(0,-1)counter等于1,这将切断字符串中的最后一个字母,否则它将评估为.slice(0,-0),根据文档应该意味着从正在操作的字符串的长度中减去0个字符.

碰巧,-0被视为与+ 0相同String.prototype.slice.我想知道这是否是一个惯例,将-0视为与+0相同(例如,我知道,-0 === +0评估为true).我想看看String.prototype.substr,但+0和-0应该在该函数中以相同的方式处理.

有没有人对此更深入了解?语言设计中是否有一些基本惯例表明,虽然有符号零是语言特征,但应该忽略它,除非在某些情况下(如1/-0)?

TL;博士,我咸,我不能对赢得代码高尔夫笑话切片.

javascript negative-zero

10
推荐指数
1
解决办法
244
查看次数

是否有可能在编译时测试类型是否支持C++中的负零?

有没有办法写一个类型特征来确定一个类型是否支持C++中的负零(包括整数表示,如符号和大小)?我没有看到任何直接这样做的东西,并且std::signbit似乎不是constexpr.

澄清:我问,因为我想知道这是否可能,无论用例是什么,如果有的话.

c++ signed types type-traits negative-zero

8
推荐指数
1
解决办法
253
查看次数

如何将负零与正零分开?

我希望能够快速测试零是正数还是负数。

let neg: CGFloat = -0
let pos: CGFloat = +0

if pos == neg {
    // this gets executed, but I don't want this
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不能像我需要的那样工作,有人可以帮助我吗?

谢谢 ;)

numbers zero ios swift negative-zero

5
推荐指数
1
解决办法
1023
查看次数

R 有“负零”吗?

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

integer r zero negative-zero

2
推荐指数
1
解决办法
93
查看次数

我可以将-0.000打印为0.000吗?

printf("%.3lf\n", -0.0001);
Run Code Online (Sandbox Code Playgroud)

这输出-0.000,但不应该是0.000

如何在没有减号的情况下进行打印,即0.000

c++ double printf double-precision negative-zero

1
推荐指数
1
解决办法
611
查看次数

如何在Swift中从负数更改为零

我有Double数据类型,因为我需要带有浮点数的结果,但是如果我的结果是否定的,则会破坏我的所有算法.是否可能存在具有浮点的无符号数据类型?

在此输入图像描述

unsigned-long-long-int swift negative-zero

0
推荐指数
1
解决办法
1431
查看次数