जावास्क्रिप्ट गणित वस्तु के तरीके - शून्य करने के लिए नकारात्मक


91

जावास्क्रिप्ट में मैं शून्य करने के लिए नकारात्मक सेट करने के लिए एक विधि खोजने के लिए प्रतीत नहीं कर सकते हैं?

-90 बन जाता है 0
-45 बन जाता है 0
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.maxसबसे अधिक पसंद है, क्योंकि इसे केवल valueएक बार संदर्भित करने की आवश्यकता है
मैट फ्लेचर

62

मुझे लगता है आप उपयोग कर सकते हैं Math.max()

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

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

3
यह मेरी राय में स्वीकृत उत्तर होना चाहिए। बस कह रहा हूँ ... :)
ksugiarto

2
एक बात का ध्यान रखें कि दोनों Math.max(0, NaN)और Math.max(0, undefined)वापस जाएँ NaNताकि आप इन पंक्तियों के साथ कुछ करना चाहें:Math.max(0, num) || 0
jervre

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;
}

शून्य न तो सकारात्मक है और न ही नकारात्मक, आपके कार्य को उसी के अनुसार बदला जाना चाहिए
किली



-1

मुझे विश्वास नहीं है कि इस तरह के एक समारोह में मूल गणित वस्तु के साथ मौजूद है। यदि आपको इसका उपयोग करने की आवश्यकता है, तो आपको फ़ंक्शन को भरने के लिए एक स्क्रिप्ट लिखना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.