JavaScript中如何将负浮点数转换为正数

3

如何将负浮点数(例如-4.00)转换为正数(例如4.00)?

6个回答

10

翻转数的最佳方法是将它与-1相乘:

console.log( -4.00 * -1 ); // 4

如果您不确定数字是正数还是负数,并且不想进行任何条件检查,那么您可以使用Math.abs()来获取绝对值:

console.log( Math.abs( 7.25 ) );     // 7.25
console.log( Math.abs( -7.25 ) );    // 7.25
console.log( Math.abs( null )) ;     // 0
console.log( Math.abs( "Hello" ) );  // NaN
console.log( Math.abs( 7.25-10 ) );  // 2.75

请注意,这将把-50.00转换为50(小数位被截断)。如果您希望保留精度,您可以立即在结果上调用toFixed

console.log( Math.abs( -50.00 ).toFixed( 2 ) ); // '50.00'

记住toFixed返回的是一个字符串,而不是一个数字。为了安全地将其转换回数字,您可以使用parseFloat,在某些情况下会剥离精度,将'50.00'转化为50


好的,但是如果是 50.00 的话,它会丢失 .00。有时这很重要。 - Ivan Pruchai
如果你需要精度,toFixed 总是可用的。Math.abs(-50.00).toFixed(2) 将产生 字符串 50.00 - Sampson

1

取绝对值:Math.abs(-4.00)


1
你想要取绝对值(Math.abs(x))还是简单地改变符号(x * -1.00)?

0
var f=-4.00;

if(f<0)
f=-f;

Downvoting,不需要那些复杂的计算,Math.abs()可以更简单地完成同样的事情。 - Doc Davluz

0

如果您知道值为负数(或想要翻转符号),只需使用-运算符:

n = -n;

如果您想获取绝对值(即始终返回正数,无论原始符号如何),请使用abs方法:
n = Math.abs(n);

-1

value * -1

这是将负数转换为正数的最简单方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接