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


87

在Javascript中,我似乎找不到找到将负数设为零的方法?

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

有没有类似的东西?我只是四舍五入的数字。

Answers:



60

我想你可以用Math.max()

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

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

3
我认为这应该是一个可以接受的答案。只是说... :)
ksugiarto

2
有一点要记住的是,无论是Math.max(0, NaN)Math.max(0, undefined)回报NaN,所以你可能想要做的东西沿着这些路线:Math.max(0, num) || 0
jwerre

7

如果您想变得聪明:

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

但是,Math.max或者条件运算符会更容易理解。
同样,这对于大量对象也存在精度问题。


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

// or 

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

零既不是正数也不是负数,您的函数应根据该名称重命名
Killy



-1

我不相信原生Math对象存在这样的功能。如果需要使用脚本,请编写脚本以填写该函数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.