बीच क्या अंतर है Math.Floor()
और Math.Truncate()
.NET में?
बीच क्या अंतर है Math.Floor()
और Math.Truncate()
.NET में?
जवाबों:
Math.Floor
राउंड डाउन, Math.Ceiling
राउंड अप, और Math.Truncate
राउंड शून्य की ओर। इस प्रकार, Math.Truncate
की तरह है Math.Floor
सकारात्मक संख्या के लिए, और इस तरह के Math.Ceiling
ऋणात्मक संख्याओं के लिए। यहाँ संदर्भ है ।
पूर्णता के Math.Round
लिए, निकटतम पूर्णांक तक गोल। यदि संख्या दो पूर्णांकों के बीच बिल्कुल मध्य है, तो यह एक की ओर भी घूमता है। संदर्भ।
यह भी देखें: पैक्स डियाब्लो के जवाब । अत्यधिक सिफारिशित!
(int)myDouble
से अलग है (int)Math.Truncate(myDouble)
?
MSDN विवरण के लिए इन लिंक का अनुसरण करें:
Math.Floor
, जो नकारात्मक अनंत की ओर चक्कर लगाता है।Math.Ceiling
, जो सकारात्मक अनंत की ओर चक्कर लगाता है।Math.Truncate
, जो शून्य की ओर ऊपर या नीचे गोल होता है।Math.Round
, जो निकटतम पूर्णांक या दशमलव स्थानों की निर्दिष्ट संख्या के लिए गोल है। आप व्यवहार को निर्दिष्ट कर सकते हैं यदि यह दो संभावनाओं के बीच समान रूप से समान है, जैसे कि गोलाई ताकि अंतिम अंक भी (" Round(2.5,MidpointRounding.ToEven)
" 2 बन रहा है) या इसलिए कि यह शून्य से दूर है (" Round(2.5,MidpointRounding.AwayFromZero)
" 3)।निम्नलिखित आरेख और तालिका मदद कर सकती है:
-3 -2 -1 0 1 2 3
+--|------+---------+----|----+--|------+----|----+-------|-+
a b c d e
a=-2.7 b=-0.5 c=0.3 d=1.5 e=2.8
====== ====== ===== ===== =====
Floor -3 -1 0 1 2
Ceiling -2 0 1 2 3
Truncate -2 0 0 1 2
Round (ToEven) -3 0 0 2 3
Round (AwayFromZero) -3 -1 0 2 3
ध्यान दें कि Round
यह बहुत अधिक शक्तिशाली है जितना लगता है, बस इसलिए कि यह एक विशिष्ट संख्या में दशमलव स्थानों के लिए गोल हो सकता है। अन्य सभी हमेशा शून्य दशमलव तक गोल करते हैं। उदाहरण के लिए:
n = 3.145;
a = System.Math.Round (n, 2, MidpointRounding.ToEven); // 3.14
b = System.Math.Round (n, 2, MidpointRounding.AwayFromZero); // 3.15
अन्य कार्यों के साथ, आपको समान प्रभाव प्राप्त करने के लिए गुणा / भाग की चाल का उपयोग करना होगा:
c = System.Math.Truncate (n * 100) / 100; // 3.14
d = System.Math.Ceiling (n * 100) / 100; // 3.15
even
अंतिम अंक की संपत्ति के रूप में सोचते हैं , न कि अर्थ के रूप में पूरी संख्या दो की एक से अधिक होनी चाहिए। वैसे, खेद है कि आपको वापस आने में इतना समय लगा, आशा है कि आप मेरी प्रतिक्रिया की प्रतीक्षा में बैठे नहीं थे :-)
Math.Floor()
नकारात्मक अनंत की ओर गोल
Math.Truncate
गोल या शून्य की ओर।
उदाहरण के लिए:
Math.Floor(-3.4) = -4
Math.Truncate(-3.4) = -3
जबकि
Math.Floor(3.4) = 3
Math.Truncate(3.4) = 3
कुछ उदाहरण:
Round(1.5) = 2
Round(2.5) = 2
Round(1.5, MidpointRounding.AwayFromZero) = 2
Round(2.5, MidpointRounding.AwayFromZero) = 3
Round(1.55, 1) = 1.6
Round(1.65, 1) = 1.6
Round(1.55, 1, MidpointRounding.AwayFromZero) = 1.6
Round(1.65, 1, MidpointRounding.AwayFromZero) = 1.7
Truncate(2.10) = 2
Truncate(2.00) = 2
Truncate(1.90) = 1
Truncate(1.80) = 1
Math.floor
बाईं ओर
Math.ceil
sliiiide ... दाईं ओर
Math.truncate
sliiiide ... criiiiss crooooss (मंजिल / छत हमेशा 0 की ओर)
Math.round
cha चा, असली चिकनी ... (निकटतम पक्ष में जाएं)
चलो काम पर जाएं! (⌐ □ _ □)
बाईं ओर ... Math.floor
अब वापस ले लो y'all ... --
दो हॉप इस बार ...-=2
हर कोई ताली बजाता है hands
आप कितना गिर सकते हैं? क्या आप नीचे जा सकते हैं? सभी तरह से floor
?
if (this == "wrong")
return "i don't wanna be right";
Math.truncate(x)
जैसा है वैसा ही है int(x)
।
एक सकारात्मक या नकारात्मक अंश को हटाकर, आप हमेशा 0 की ओर बढ़ रहे हैं।
वे सकारात्मक संख्याओं के साथ कार्यात्मक रूप से समतुल्य हैं। अंतर यह है कि वे नकारात्मक संख्याओं को कैसे संभालते हैं।
उदाहरण के लिए:
Math.Floor(2.5) = 2
Math.Truncate(2.5) = 2
Math.Floor(-2.5) = -3
Math.Truncate(-2.5) = -2
MSDN लिंक: - Math.Floor Method - Math.Truncate मेथड
मैथ के पीएस खबरदार। यह वह नहीं हो सकता है जो आप उम्मीद करते हैं।
"मानक" राउंडिंग परिणाम का उपयोग करने के लिए:
float myFloat = 4.5;
Console.WriteLine( Math.Round(myFloat) ); // writes 4
Console.WriteLine( Math.Round(myFloat, 0, MidpointRounding.AwayFromZero) ) //writes 5
Console.WriteLine( myFloat.ToString("F0") ); // writes 5
इसका प्रयास करें, उदाहरण:
Math.Floor () बनाम Math.Truncate ()
Math.Floor(2.56) = 2
Math.Floor(3.22) = 3
Math.Floor(-2.56) = -3
Math.Floor(-3.26) = -4
Math.Truncate(2.56) = 2
Math.Truncate(2.00) = 2
Math.Truncate(1.20) = 1
Math.Truncate(-3.26) = -3
Math.Truncate(-3.96) = -3
इसके अलावा गणित। घाव ()
Math.Round(1.6) = 2
Math.Round(-8.56) = -9
Math.Round(8.16) = 8
Math.Round(8.50) = 8
Math.Round(8.51) = 9
math.floor()
निर्दिष्ट संख्या से कम या बराबर सबसे बड़ा पूर्णांक देता है। MSDN system.math.floor
math.truncate()
किसी संख्या के अभिन्न अंग की गणना करता है। MSDN system.math.truncate
Math.Floor()
IEEE मानक 754 खंड 4 के अनुपालन में "नकारात्मक अनंत की ओर" गोल ।
Math.Truncate()
राउंड "शून्य की ओर निकटतम पूर्णांक पर।"
Math.Floor()
: निर्दिष्ट डबल-सटीक फ़्लोटिंग-पॉइंट संख्या से कम या उसके बराबर सबसे बड़ा पूर्णांक लौटाता है।
Math.Round()
: निकटतम पूर्णांक या भिन्न अंकों की संख्या के लिए एक मूल्य को सीमा देता है।
Floor()
और के बीच अंतर के बारे में पूछा Truncate()
, Floor()
और नहीं Round()
।