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.

Jawaban:


184

Lakukan saja sesuatu seperti

value = value < 0 ? 0 : value;

atau

if (value < 0) value = 0;

atau

value = Math.max(0, value);

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

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.


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

// or 

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

nol tidak positif atau negatif, fungsi Anda harus diganti sesuai dengan itu
Killy



-1

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.