在JavaScript中将负数转换为正数

JavaScript中有math函数将数字转换为正值吗?

你可以用这个…

Math.abs(x) 

那么x *= -1呢? 我喜欢它的简单。

Math.abs(x)或者如果您确定转换前的值为负,则只需添加常规减号: x = -x

减号( – )可以将正数转换为负数,将负数转换为正数。 x=-yx=(y*-1)视觉糖。

 var y = -100; var x =- y; 
 unsigned_value = Math.abs(signed_value); 
 var posNum = (num < 0) ? num * -1 : num; // if num is negative multiple by negative one ... 

我觉得这个解决scheme很容易理解。

如果你想编写有趣的代码,没有人可以更新,试试这个:

〜–X

我自己做了这样的事情。

 num<0?num*=-1:''; 

它会检查数字是否为负值,如果是,则与-1相乘。这会返回一个值,如果捕获它,则返回一个值。 如果你想把它分配给某个东西,你可能应该这样做:

 var out = num<0?num*=-1:num; //I think someone already mentioned this variant. 

但这真的取决于你的目标是什么。 对我而言,这很简单,如果是消极的话,就是积极的,否则什么也不做。 因此代码中的“”。 在这种情况下,我用三级运营商,因为我想,它可能是:

 if(num<0)num*=-1; 

我在这里看到了这个按部就class的解决scheme,也想就此发表评论。

 ~--num; //Drawback for this is that num original value will be reduced by 1 

在我看来,这种精神是非常奇特的,我们可以像这样改写它:

 ~(num = num-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将起作用,因为“+”具有更高的优先级,将在稍后进行评估。

我发现这个解决scheme相当有趣,并决定将其扩展,因为它只是被扔在那里,看着它的人​​可能会忽略它。 虽然是的,它不会与浮游物。

我的希望是,这个职位并没有摆脱原来的问题。 :/

我知道这有点晚了,但是对于挣扎着这个的人来说,你可以使用

将负片转换为正片

 let x = -54; let result = Math.abs(x); 

转换积极到消极

 let x = 54; let result = -Math.abs(x) 

或者你可以简单地做这个简短的方法。

转换正面到负面和反面Versa

 let x = -23; let result = -(23) 

我最小的方法

将负数转换为正数,反之亦然

 var num = -24; num -= num*2; console.log(num) // result = 24 

JavaScript – 不使用function:

 var x=-9; var x=((x*x)**0.5); console.log(x); 

您可以使用运算符,逻辑上将该数字转换为负数,并将负数加1:

 var x = 3; x = (~x + 1); console.log(x) // result = -3