在Javascript中我似乎无法找到一种方法将负数设置为零?Javascript Math对象方法 - 负数为零
-90变为0
-45变为0
0变为0
90变成90
有什么样的?我只有四舍五入的数字。
在Javascript中我似乎无法找到一种方法将负数设置为零?Javascript Math对象方法 - 负数为零
-90变为0
-45变为0
0变为0
90变成90
有什么样的?我只有四舍五入的数字。
就做这样的事情
value = value < 0 ? 0 : value;
或
if (value < 0) value = 0;
或
value = Math.max(0, value);
我想你可以使用Math.max()
。
var num = 90;
num = Math.max(0,num); // 90
var num = -90;
num = Math.max(0,num); // 0
这个应该是我认为的可接受的答案。只是说...... :) – ksugiarto 2015-06-30 07:28:53
x < 0 ? 0 : x
完成这项工作。
如果你要聪明一点:
num = (num + Math.abs(num))/2;
然而,Math.max
或有条件的经营者会更理解。
此外,这对于大量数据具有精度问题。
我不相信这样的函数存在与本地数学对象。如果你需要使用它,你应该编写一个脚本来填写函数。
Math.positive = function(num) {
return Math.max(0, num);
}
// or
Math.positive = function(num) {
return num < 0 ? 0 : num;
}
记住负数零。
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/
快速JSPerf示值=值<0? 0:值;在顶部http://jsperf.com/negatives-to-zero – Skeep 2014-08-19 08:20:55
我最喜欢`Math.max`,因为它只需要引用`value`一次 – 2017-09-15 11:05:51