उपयोग Math.Floor अगर आप आप एक प्राप्त करना चाहते हैं, तो था मूल्य, या Math.Round नीचे पूर्णांक बनाना चाहते हैं सटीक दौर Math.Truncate बस संख्या का दशमलव हिस्से को हटाने, तो आप ऋणात्मक संख्याओं के लिए बुरा परिणाम प्राप्त:
var result= Math.Floor(number * 100)/100;
Math.Floor हमेशा सबसे छोटी अभिन्न मूल्य है कि कम (तल) या अधिक से अधिक (छत) की तुलना में वापसी निर्दिष्ट मूल्य तो आपको सही गोल नहीं मिलता है। उदाहरण:
Math.Floor(1.127 * 100)/100 == 1.12 //should be 1.13 for an exact round
Math.Ceiling(1.121 * 100)/100 == 1.13 //should be 1.12 for an exact round
हमेशा गणित के संस्करण को प्राथमिकता दें। राउंड मध्य-बिंदु राउंडिंग पैराम युक्त है। यह पैराम बताता है कि मध्य बिंदु मान (5) को अंतिम अंक के रूप में कैसे संभालना है।
यदि आप पैरा के लिए मूल्य के रूप में AwayFromZero निर्दिष्ट नहीं करते हैं, तो आपको डिफ़ॉल्ट व्यवहार मिलेगा, जो ToEven है। उदाहरण के लिए, ToEven का उपयोग कर विधि गोलाई के रूप में, आपको मिलता है:
Math.Round(2.025,2)==2.02
Math.Round(2.035,2)==2.04
बजाय, MidPoint.AwayFromZero परम का उपयोग कर:
Math.Round(2.025,2,MidpointRounding.AwayFromZero)==2.03
Math.Round(2.035,2,MidpointRounding.AwayFromZero)==2.04
तो, एक सामान्य राउंडिंग के लिए, यह इस कोड का उपयोग करने के लिए सबसे अच्छा है:
var value=2.346;
var result = Math.Round(value, 2, MidpointRounding.AwayFromZero);
क्या आप दशमलव को स्वयं या एक टेक्स्ट प्रस्तुति को गोल करना चाहते हैं? –
@ हेनक, मुझे मूल्य को टेक्स्ट के रूप में आउटपुट करने की आवश्यकता है, लेकिन आउटपुट से पहले गोलाकार करना होगा। यह पसंद है कि मूल्य को बाद में अन्य कैल्क्स में खिलाना होगा। –
संभावित डुप्लिकेट [दशमलव बिंदु के बाद दो से 2 महत्वपूर्ण आंकड़े गोल करें] (http: // stackoverflow।कॉम/प्रश्न/2808535/राउंड-ए-डबल-टू-2-महत्वपूर्ण-आंकड़े-दशमलव-बिंदु-बाद-बिंदु) – ecatmur