web-dev-qa-db-ja.com

Javascript Math Objectメソッド-ゼロからマイナス

javascriptでは、ネガをゼロに設定する方法が見つからないようですか?

-90は0になります
-45は0になります
0は0になります
90は90になります

そのようなものはありますか?数字を丸めました。

64
FFish

次のようなことをしてください

value = value < 0 ? 0 : value;

または

if (value < 0) value = 0;

または

value = Math.max(0, value);
141
aioobe

Math.max()を使用できると思います。

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

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

賢くなりたい場合:

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

しかしながら、 Math.maxまたは条件演算子がはるかに理解しやすいでしょう。
また、これには大きな数値の精度の問題があります。

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

// or 

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

x < 0 ? 0 : x仕事をします。

3
Alexandre C.

負のゼロを思い出してください。

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/

0
Killy

そのような関数がネイティブMathオブジェクトに存在するとは思わない。関数を使用する必要がある場合は、関数に入力するスクリプトを作成する必要があります。

0
jacobangel