2010-02-08 22 views
5

संभव डुप्लिकेट:
c# - How do I round a decimal value to 2 decimal places (for output on a page)दौर दशमलव मान 0.01 के नजदीक तक?

How to round decimal value up to nearest 0.05 value??, तो भी पोस्ट जुड़ा हुआ समान विषय पर चर्चा है, लेकिन इसकी नहीं उत्पादन मैं उम्मीद।

मुझे नहीं मेरे लिए काम करता है, यह निम्न देता है मैं सी # विधि नीचे का उपयोग कर सकते मूल्यों

Math.Round(16.482*20)/20; 

लेकिन इस विधि परिवर्तित करने के लिए इस

16.489-->16.49 
16.482-->16.48 
16.425-->16.43 
7.67 --> 7.67 (no conversion) 

तरह दशमलव मान बदलने की आवश्यकता परिणाम

16.489-->16.5 
16.482-->16.5 
7.67 --> 7.7 
16.425-->16.45 

ऐसा करने के लिए सी # में सुरुचिपूर्ण तरीका क्या है।

उत्तर

14

Math..::.Round Method (Decimal, Int32, MidpointRounding)

राउंड एक डबल परिशुद्धता फ़्लोटिंग-बिंदु मान की कोशिश किया। एक पैरामीटर मानता है कि मूल्य को कैसे गोल किया जाए यदि यह दो अन्य संख्याओं के बीच मिडवे है।

Math.Round(1.489,2,MidpointRounding.AwayFromZero) 
+0

यदि आप निकटतम तिमाही में घूमना चाहते हैं तो क्या होगा? ताकि 1.489 राउंड 1.5 हो, लेकिन 1.479 राउंड 1.475 हो? – Anthony

+0

Math.Round (1.479,2, MidpointRounding.AwayFromZero) 1.48 – Fredou

+0

@Fredou के दौर में, यह ठीक काम करता है .. धन्यवाद ... – RameshVel

2

आप आंशिक अंकों की निर्दिष्ट संख्या के लिए

Math.Round(16.482*200)/200; 
+0

ऐसा करने का कोई क्लीनर तरीका नहीं है? –

+0

मुझे नहीं पता, मुझे सी # पता नहीं है। मुझे पता है कि उदाहरण कोड कैसे काम करता है। यह उस स्थान के विपरीत संख्या को गुणा करता है जहां आप गोल करना चाहते हैं, और उसके बाद उसी संख्या में वापस आने के लिए उसी राशि को उस विपरीत में विभाजित करता है। आप एक ही विचार को निकटतम तिमाही में गोल करने के लिए उपयोग कर सकते हैं (इस तरह मैंने इस चाल को सीखा)। – Anthony

+0

आप एक ऐसा फ़ंक्शन बना सकते हैं जिसे आप मूल्य प्लग करते हैं और आप क्या करना चाहते हैं, लेकिन चूंकि एसओ को यह एहसास नहीं हुआ कि वह .005 तक घूमना चाहता है, मुझे यकीन नहीं है कि यह सहायक होगा करने के लिए सुझाव। – Anthony

संबंधित मुद्दे