सी # में, मेरे पास मूल्य 10215.24 के साथ एक डबल चर मूल्य है। मैं कुछ अंकों के बाद कॉमा के साथ कीमत दिखाना चाहता हूं। मेरे अपेक्षित आउटपुट 10,215.24सी #: प्रारूप मूल्य मूल्य स्ट्रिंग
उत्तर
myPrice.ToString("N2");
आप क्या चाहते हैं पर निर्भर करता है, आप भी मुद्रा प्रतीक प्रदर्शित करने के लिए इच्छा हो सकती है:
myPrice.ToString("C2");
(सी के बाद नंबर या एन इंगित करता है कि कितने दशमलव इस्तेमाल किया जाना चाहिए)। (सी मुद्रा स्ट्रिंग के रूप में संख्या को स्वरूपित करता है, जिसमें मुद्रा चिह्न शामिल होता है)
पूरी तरह से राजनीतिक रूप से सही होने के लिए, आप संस्कृतिइन्फो को भी निर्दिष्ट कर सकते हैं जिसका उपयोग किया जाना चाहिए।
मुझे लगता है कि "एन 2" वह है जो वे बाद में हैं। –
हालांकि 2 प्रकार का डिफ़ॉल्ट नहीं है? तो आपको केवल 'myPrice.ToString ("N") की आवश्यकता होगी?महत्वपूर्ण नहीं, सिर्फ उत्सुक: पी – Svish
सी 2 गलत है, क्योंकि यह मुद्रा –
है मुझे लगता है कि यह यह करना चाहिए:
String.Format("{0:C}", doubleVar);
आप मुद्रा प्रतीक नहीं करना चाहते हैं, तो बस ऐसा करते हैं:
String.Format("{0:N2}", doubleVar);
मुझे नहीं लगता कि वे एक चाहते थे मुद्रा चिन्ह। –
यह उत्तर स्थान पर है। हालांकि, विभिन्न प्रकार के स्वरूपण के लिए http://msdn.microsoft.com/en-us/library/fht0f5be.aspx पर भी एक नज़र डालें। – James
format strings, विशेष रूप में देखो "मक्का"।
double price = 1234.25;
string FormattedPrice = price.ToString("N"); // 1,234.25
एक साइड नोट के रूप में, मैं मुद्रा के लिए दशमलव प्रकार को देखने की अनुशंसा करता हूं। यह गोलाकार त्रुटियों से बचाता है जो प्लेटों को तैरता है, लेकिन इंटीजर के विपरीत, इसमें दशमलव बिंदु के बाद अंक हो सकते हैं।
। दशमलव के लिए दशमलव का उपयोग किया जाना चाहिए जहां परिशुद्धता मायने रखती है। –
कुछ वित्तीय अनुप्रयोगों में, फ्लोट्स का उपयोग करने के लिए यह अवैध रूप से अवैध है क्योंकि सभी गोलियां निर्धारित तरीके से की जानी चाहिए। वैकल्पिक जहां एक दशमलव या बिग नब्स प्रकार का वर्ग अनुपलब्ध है, मुद्रा इकाई के अंशों को संग्रहित करने के लिए पूर्णांक का उपयोग करना है। तो, उदाहरण के लिए, हम पेनी या उसके अंशों की गणना कर सकते हैं। –
क्या यह सच नहीं है कि फ्लोटिंग पॉइंट त्रुटियों को इंटेल चिप्स और compatibles के लिए अलग कर रहे हैं? –
यह मदद कर सकता है
String.Format("{#,##0.00}", 1243.50); // Outputs “1,243.50″
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50); // Outputs “$1,243.50″
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", -1243.50); // Outputs “($1,243.50)″
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0); // Outputs “Zero″
आप जो चाहते है कि "एन 2"।
double dPrice = 29.999988887777666655554444333322221111;
string sPrice = "£" + dPrice.ToString("N2");
तुम भी इस तरह हो सकता है:
string sPrice = "";
if(dPrice < 1)
{
sPrice = ((int)(dPrice * 100)) + "p";
} else
{
sPrice = "£" + dPrice.ToString("N2");
}
जो इस के लिए अच्छी तरह से संघनित:
यहाँ एक उदाहरण है
string sPrice = dPrice < 1 ? ((int)(dPrice * 100)).ToString("N0") + "p" : "£" + dPrice.ToString("N2");
इसके अलावा विभिन्न अन्य प्रकार के लिए msdn.microsoft.com/en-us/library/fht0f5be.aspx पर पढ़ने स्वरूपण
जो उत्तर आप प्राप्त कर चुके हैं। टोस्टिंग ("एन") अच्छे हैं। मैं सिर्फ यह ध्यान रखना चाहता हूं कि आउटपुट वर्तमान संस्कृतिइन्फो पर निर्भर करेगा; यह एक अच्छी बात है। मेरे सिस्टम (स्वीडिश लोकेल) में, यह "10 215,24" प्रिंट करता है जो मुझे समझ में आता है, क्योंकि "10,215.24" आपको समझ में आता है। बस ध्यान रखें कि यदि आप इस स्ट्रिंग को * डेटटाइम * पर वापस पार्स करने का प्रयास करते हैं तो आप परेशानी में भाग सकते हैं। –
@ फ़्रेड्रिक: वह इसे * डेटटाइम * पर वापस क्यों लाएगा? –
उनके मस्तिष्क ने शायद गियर मध्य वाक्य को स्विच किया: पी – Svish