JavaScript中是否有数学函数可以将数字转换为正数?
当前回答
我自己也做过类似的事。
num<0?num*=-1:'';
它检查数字是否为负,如果为负,则与-1相乘 这确实返回一个值,它取决于你是否捕获它。如果你想把它赋值给某个东西,你可能应该这样做:
var out = num<0?num*=-1:num; //I think someone already mentioned this variant.
但这取决于你的目标是什么。对我来说,这很简单,如果是负的,就让它为正,否则什么都不做。因此“在代码中”。 在这种情况下,我使用了第三算子,因为我想,它很可能是:
if(num<0)num*=-1;
我在这里看到了按位的解决方案,也想评论一下。
~--num; //Drawback for this is that num original value will be reduced by 1
在我看来,这个方法非常奇特,我们可以这样重写:
~(num = num-1);
简单来说,就是取负数,减去1,然后逐位求倒数。如果按位反转,通常会得到一个很小的值1。 你还可以这样做:
~num+1; //Wont change the actual num value, merely returns the new value
它会做同样的事情,但会先求倒数,然后再给正数加1。 虽然你不能这样做:
~num++; //Wont display the right value.
由于优先级的原因,这将不起作用,后缀操作符,如num++将在~之前计算,而前缀++num不会起作用的原因是,即使它与按位not(~)具有相同的优先级,因为它是从右向左计算的。我确实试图交换他们周围,但似乎前缀是一个小挑剔相比,按位不。 +1可以工作,因为'+'具有更高的优先级,将在稍后计算。
我发现这个解决方案相当有趣,并决定扩展它,因为它只是被扔在那里,人们看到它可能会忽略它。虽然是的,它不会与浮动工作。
我希望这篇文章没有偏离最初的问题。: /
其他回答
如果你想写有趣的代码,没有人可以更新,试试这个:
~--x
你可以用这个…
Math.abs(x)
Math .abs() | MDN
那么x *= -1呢?我喜欢它的简洁。
你可以使用~运算符,逻辑上将数字转换为负数,并在负数上加1:
Var x = 3; X = (~ X + 1); console.log (x) // result = -3
我自己也做过类似的事。
num<0?num*=-1:'';
它检查数字是否为负,如果为负,则与-1相乘 这确实返回一个值,它取决于你是否捕获它。如果你想把它赋值给某个东西,你可能应该这样做:
var out = num<0?num*=-1:num; //I think someone already mentioned this variant.
但这取决于你的目标是什么。对我来说,这很简单,如果是负的,就让它为正,否则什么都不做。因此“在代码中”。 在这种情况下,我使用了第三算子,因为我想,它很可能是:
if(num<0)num*=-1;
我在这里看到了按位的解决方案,也想评论一下。
~--num; //Drawback for this is that num original value will be reduced by 1
在我看来,这个方法非常奇特,我们可以这样重写:
~(num = num-1);
简单来说,就是取负数,减去1,然后逐位求倒数。如果按位反转,通常会得到一个很小的值1。 你还可以这样做:
~num+1; //Wont change the actual num value, merely returns the new value
它会做同样的事情,但会先求倒数,然后再给正数加1。 虽然你不能这样做:
~num++; //Wont display the right value.
由于优先级的原因,这将不起作用,后缀操作符,如num++将在~之前计算,而前缀++num不会起作用的原因是,即使它与按位not(~)具有相同的优先级,因为它是从右向左计算的。我确实试图交换他们周围,但似乎前缀是一个小挑剔相比,按位不。 +1可以工作,因为'+'具有更高的优先级,将在稍后计算。
我发现这个解决方案相当有趣,并决定扩展它,因为它只是被扔在那里,人们看到它可能会忽略它。虽然是的,它不会与浮动工作。
我希望这篇文章没有偏离最初的问题。: /