Metode Objek Matematika Javascript - negatif ke nol

90

di Javascript Sepertinya saya tidak dapat menemukan metode untuk menyetel negatif ke nol?

-90 menjadi 0
-45 menjadi 0
0 menjadi 0
90 menjadi 90

Apa ada yang seperti itu? Saya baru saja membulatkan angka.

FFish
sumber

Jawaban:

184

Lakukan saja sesuatu seperti

value = value < 0 ? 0 : value;

atau

if (value < 0) value = 0;

atau

value = Math.max(0, value);
aioobe
sumber
2
Quick JSPerf menunjukkan nilai = nilai <0? 0: nilai; ada di atas jsperf.com/negatives-to-zero
Skeep
23
Saya paling suka yang Math.maxpaling, karena hanya membutuhkan referensi valuesekali
Matt Fletcher
61

Saya kira Anda bisa menggunakan Math.max().

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

var num = -90;
num = Math.max(0,num); // 0
RightSaidFred
sumber
3
Yang ini harus menjadi jawaban yang diterima menurut saya. Hanya mengatakan ... :)
ksugiarto
2
Satu hal yang perlu diingat adalah bahwa keduanya Math.max(0, NaN)dan Math.max(0, undefined)kembali NaNsehingga Anda mungkin ingin melakukan sesuatu seperti ini:Math.max(0, num) || 0
jwerre
8

Jika Anda ingin menjadi pintar:

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

Namun, Math.maxatau operator bersyarat akan jauh lebih bisa dimengerti.
Juga, ini memiliki masalah presisi untuk jumlah besar.

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

// or 

Math.positive = function(num) {
  return num < 0 ? 0 : num;
}
Juan Mendes
sumber
nol tidak positif atau negatif, fungsi Anda harus diganti sesuai dengan itu
Killy
3

x < 0 ? 0 : x melakukan pekerjaan itu.

Alexandre C.
sumber
-1

Saya tidak percaya bahwa fungsi seperti itu ada dengan objek Matematika asli. Anda harus menulis skrip untuk mengisi fungsi jika Anda perlu menggunakannya.

jacobangel
sumber