Javascript数学オブジェクトメソッド-ゼロへの負数


91

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

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

そのようなものはありますか?数値を四捨五入しました。

回答:


185

次のようなことをするだけです

value = value < 0 ? 0 : value;

または

if (value < 0) value = 0;

または

value = Math.max(0, value);

2
クイックJSPerfは値=値<0を示しますか?0:値; 一番上にあるjsperf.com/negatives-to-zero
Skeep

24
Math.maxvalue度だけ参照する必要があるので、私はこれが最も好きです
Matt Fletcher

62

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

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

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

3
これは私の意見では受け入れられた答えでなければなりません。ただ言っている... :)
ksugiarto 2015年

2
心に留めておくべきことの一つは、その両方であるMath.max(0, NaN)Math.max(0, undefined)リターンNaN:あなたはこれらの線に沿って何かをしたいかもしれのでMath.max(0, num) || 0
jwerre

8

賢くなりたい場合:

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オブジェクトに存在するとは思わない。関数を使用する必要がある場合は、関数に入力するスクリプトを作成する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.