2011-08-25 11 views
6

मैं अपने टेक्स्ट बॉक्स जो पैसा (एसक्यूएल सर्वर) इकाई फ़ील्ड से बंधे हैं, चार स्थानों की बजाय केवल दो दशमलव स्थान दिखाने के लिए चाहते हैं।सी # टेक्स्टबॉक्स दशमलव स्वरूपण

मैं निम्नलिखित प्रदर्शन के साथ DevExpress textEdit और CalcEdit बॉक्स का उपयोग करता हूं और प्रारूप संपादित करता हूं: "#,##0.00#;(#,##0.00#)"; लेकिन मुझे हमेशा चार दशमलव स्थान (शून्य) मिलते हैं।

मैं जेनस ग्रिड में एक ही प्रारूप स्ट्रिंग का उपयोग करता हूं, मान सही तरीके से प्रदर्शित होते हैं।

कोई विचार, धन्यवाद।

+2

आपके लिए 'N2' काम नहीं करता है? – V4Vendetta

उत्तर

3

#,##0.00 आज़माएं - आपको पिछली "#" की आवश्यकता नहीं है।

4

इसका उपयोग करें:

उदाहरण के लिए आपके पास एक वैरिएबल नाम राशि है। फिर इसे इस तरह प्रारूपित करें,

amount.ToString("###,###.00"); 

यह आपको दो दशमलव स्थानों में राशि देगा।

उम्मीद है कि इससे मदद मिलती है।

+0

मेरे टेक्स्टबॉक्स को संख्यात्मक फ़ील्ड वाली इकाई से जोड़ा जाता है, क्या मुझे डेटा लोड होने पर टेक्स्टबॉक्स को प्रारूपित करना चाहिए, फिर प्रत्येक बार टेक्स्टबॉक्स मान बदलना चाहिए? – Dohamsg

+0

आप इसे भी ऐसा कर सकते हैं। बताओ कि यह काम करता है या नहीं? – AlphaMale

5

मैं जहां भी संभव हो, अंतर्निहित प्रारूप तारों का उपयोग करने की अत्यधिक अनुशंसा करता हूं, जैसे कि N2

string s = number.ToString("N2"); 

उपयोग जॉन शीहान के .NET Format String Quick Reference चीट शीट जब संदेह में। इसमें .NET में स्वरूपण संख्याओं और तिथियों के बारे में आवश्यक सभी जानकारी है।

calcEdit.Properties.DisplayFormat.FormatType = FormatType.Numeric; 
calcEdit.Properties.DisplayFormat.FormatString = "N2"; 

प्रारूप प्रकार निर्धारित नहीं है तो, प्रारूप स्ट्रिंग लागू नहीं किया जाएगा:

DevExpress नियंत्रण आमतौर पर यह भी निर्दिष्ट करने के लिए क्या आप (उदाहरण के लिए एक नंबर, दिनांक आदि) स्वरूपण कर रहे हैं आप की आवश्यकता ।

टेक्स्ट एडिट के साथ आपको इसके बजाय एक मास्क निर्दिष्ट करना चाहिए।

textEdit.Properties.Mask.MaskType = MaskType.Numeric; 
textEdit.Properties.Mask.EditMask = "N2"; 
+0

कोशिश की, लेकिन कोई सफलता नहीं। धन्यवाद – Dohamsg

+0

डिजाइनर का उपयोग करके केवल दो दशमलव प्राप्त करने का कोई तरीका नहीं है। टेक्स्टबॉक्स के टेक्स्ट को प्रारूपित करने के लिए मैं किस घटना चिल्लाता हूं। जब मैं ग्रिड पंक्ति (संख्यात्मक कॉलम अच्छी तरह से स्वरूपित) पर डबलक्लिक करता हूं, तो मैं टेक्स्टबॉक्स के साथ एक फॉर्म पर एक ही डेटा दिखाता हूं (संख्यात्मक टेक्स्टबॉक्स में पिछला चार शून्य दिखा रहा है)। – Dohamsg

+0

इसके बजाय एक मुखौटा निर्दिष्ट करने का प्रयास करें। मेरा अद्यतन उत्तर देखें। यदि आप पाठ संपादन में डेटा प्रदर्शित करने के लिए बाध्यकारी स्रोत का उपयोग कर रहे हैं, तो नियंत्रण के बजाय बाध्यकारी पर प्रारूप स्ट्रिंग निर्दिष्ट करें। – bernhof

0

मैं आमतौर पर सत्यापित होने के बाद टेक्स्ट बॉक्स में नया स्वरूपित मान वापस लिखता हूं। तो यदि यह हज़ारों के लिए दशमलव है तो मान्य ईवेंट हैंडलर में मैं इस तरह के फ्लोट पर पार्स किए जाने के बाद मान को वापस टेक्स्ट में लिखता हूं। this.textbox1.Text = speed.ToString ("N3")।

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