x = -0
>> -0
typeof(x)
>> "number"
x.toString()
>> "0"
console.log(x)
>> -0
如何将 Javascript 的 −0(设置了符号位而不是清除的数字零)转换为两个字符串 (
"-0"
),就像 console.log
在显示它之前所做的一样?
如果 Node.js(或 npm 可用¹)
util.inspect
会这样做:
> util.inspect(-0)
'-0'
没有的话可以做一个函数:
const numberToString = x =>
Object.is(x, -0) ?
'-0' :
String(x);
如果您没有
x === 0 && 1 / x === -Infinity
,请用Object.is
替换条件。
¹ 我还没有读过这个包的源代码,以后可能会更新它;安装前先看看!
这个怎么样(从here借来的想法):
[-0, 0].forEach(function(x){
console.log(x, x === 0 && 1/x === -Infinity ? "-0" : "0");
});
所以我们不能简单地得到 -0 的符号,它是唯一的,如果符号是 -0,我们可以将“-”附加到零。任何想法