2011-06-15 16 views
155

मैं वर्तमान में एक ग्राहक वेबसाइट के लिए एक बिक्री मॉड्यूल का निर्माण कर रहा हूं। अब तक मुझे पूरी तरह से गणना करने के लिए बिक्री मूल्य मिल गया है, लेकिन जहां मैं अटक गया हूं, आउटपुट को 2 दशमलव स्थानों पर स्वरूपित कर रहा है।2 दशमलव स्थानों पर एक फ्लोट स्वरूपण

मैं वर्तमान में इसे एक चर में कॉल कर रहा हूं ताकि मैं परिणाम परिणामों को एक सूचीदृश्य में जोड़ सकूं।

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price/100))).ToString())), 

क्या कोई मुझे दिखा सकता है कि आउटपुट को 2 दशमलव स्थानों पर कैसे प्रारूपित किया जाए ?? बहुत धन्यवाद!

+0

इसे जांचें मुझे यकीन नहीं है लेकिन हो सकता है कि यह ToString ("#। ##") काम करेगा; – Syeda

उत्तर

340

आप ToString विधि करने के लिए प्रारूप पारित कर सकते हैं, जैसे:

myFloatVariable.ToString("0.00"); //2dp Number 

myFloatVariable.ToString("n2"); // 2dp Number 

myFloatVariable.ToString("c2"); // 2dp currency 

Standard Number Format Strings

+8

मुझे मुद्रा संकेत के लिए इस पोस्ट को +2 करने में सक्षम होना चाहिए। – Luc

+25

"एन 2" और "सी 2" हजारों विभाजक जोड़ देंगे जबकि "0.00" नहीं होगा। –

+0

ग्रेट उत्तर! :) – Del

38

पहली बात करने की ज़रूरत है float के बजाय decimal प्रकार की कीमतों के लिए उपयोग किया जाता है । float का उपयोग करना इसके लिए बिल्कुल अस्वीकार्य है क्योंकि यह सटीक रूप से अधिकांश दशमलव अंशों का प्रतिनिधित्व नहीं कर सकता है।

एक बार ऐसा करने के बाद, Decimal.Round() 2 स्थानों के लिए उपयोग किया जा सकता है।

+0

भयानक, दोस्त! – Spandan

19

मेरा मानना ​​है कि:

String.Format ("{0: 0.00}", बिक्री);

इसे करना चाहिए।

लिंक देखें String Format Examples C#

31

String.Format("{0:#,###.##}", value)

एक अधिक जटिल उदाहरण String Formatting in C# से:

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

हो जाएगा ताकि उत्पादन "$ 1,240.00" पारित कर दिया है, तो 1243.50। यह उसी प्रारूप को आउटपुट करेगा, लेकिन यदि संख्या ऋणात्मक है तो ब्रांड्स में, और यदि शून्य शून्य है तो स्ट्रिंग "शून्य" आउटपुट करेगा।

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