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

FFi*_*ish 69 javascript math negative-number

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

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

有什么相似的吗?我只是四舍五入的数字.

aio*_*obe 148

做一些像

value = value < 0 ? 0 : value;
Run Code Online (Sandbox Code Playgroud)

要么

if (value < 0) value = 0;
Run Code Online (Sandbox Code Playgroud)

要么

value = Math.max(0, value);
Run Code Online (Sandbox Code Playgroud)

  • 我最喜欢`Math.max`,因为它只需要引用一次`value` (14认同)
  • Quick JSPerf 显示 value = value &lt; 0 ?0:值;位于顶部 http://jsperf.com/negatives-to-zero (2认同)

Rig*_*red 49

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

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

var num = -90;
num = Math.max(0,num); // 0
Run Code Online (Sandbox Code Playgroud)

  • 在我看来,这应该是公认的答案。只是说... :) (3认同)
  • 要记住的一件事是,`Math.max(0, NaN)` 和 `Math.max(0, undefined)` 都返回 `NaN`,所以你可能想要按照以下方式做一些事情:`Math.max( 0, 数量) || 0` (3认同)

SLa*_*aks 6

如果你想聪明:

num = (num + Math.abs(num)) / 2;
Run Code Online (Sandbox Code Playgroud)

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