Javascript数学对象方法 - 负数为零

时间:2011-02-07 18:14:25

标签: javascript math negative-number

在Javascript中

我似乎无法找到将负数设置为零的方法?

-90变为0
-45变为0
0变为0
90变为90

有类似的东西吗?我刚刚完成了数字。

8 个答案:

答案 0 :(得分:135)

做一些像

这样的事情
value = value < 0 ? 0 : value;

if (value < 0) value = 0;

value = Math.max(0, value);

答案 1 :(得分:43)

我想你可以使用Math.max()

var num = 90;
num = Math.max(0,num); // 90

var num = -90;
num = Math.max(0,num); // 0

答案 2 :(得分:7)

如果你想要聪明:

num = (num + Math.abs(num)) / 2;

但是,Math.max或条件运算符会更容易理解 此外,这对于大数字也存在精确问题。

答案 3 :(得分:4)

Math.positive = function(num) {
  return Math.max(0, num);
}

// or 

Math.positive = function(num) {
  return num < 0 ? 0 : num;
}

答案 4 :(得分:3)

x < 0 ? 0 : x完成这项工作。

答案 5 :(得分:0)

我不相信本机Math对象存在这样的函数。如果需要使用它,您应该编写一个脚本来填写函数。

答案 6 :(得分:0)

记住负零。

function isNegativeFails(n) {
    return n < 0;
}
function isNegative(n) {
    return ((n = +n) || 1 / n) < 0;
}
isNegativeFails(-0); // false
isNegative(-0); // true
Math.max(-0, 0); // 0
Math.min(-0, 0); // -0

来源:http://cwestblog.com/2014/02/25/javascript-testing-for-negative-zero/

答案 7 :(得分:0)

好吧,value = Math.max(0,value) 很简洁,但 10 年后,我只是不想再提及另一种不错的方法。

value < 0 && (value = 0);