在JavaScript中将负数转换为正数
JavaScript中有math函数将数字转换为正值吗?
你可以用这个…
Math.abs(x)
那么x *= -1
呢? 我喜欢它的简单。
Math.abs(x)
或者如果您确定转换前的值为负,则只需添加常规减号: x = -x
。
减号( – )可以将正数转换为负数,将负数转换为正数。 x=-y
是x=(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