बहु-सांस्कृतिक प्रोग्रामिंग के मजेदार हिस्सों में से एक संख्या प्रारूप है।फ़्लोटिंग प्वाइंट नंबर पार्सिंग: क्या कोई एल्गोरिदम कैच है?
- अमेरिकियों का उपयोग 10.000,50
- फ्रेंच उपयोग का उपयोग 10,000.50
- जर्मनी के 10 000,50
मेरा पहला दृष्टिकोण स्ट्रिंग लेने के लिए है, यह पीछे की ओर पार्स, जब तक मैं एक मुठभेड़ होगा विभाजक और इसे मेरे दशमलव विभाजक के रूप में उपयोग करें। इसके साथ एक स्पष्ट दोष है: 10.000 को 10 के रूप में व्याख्या किया जाएगा।
एक और दृष्टिकोण: यदि स्ट्रिंग में 2 अलग-अलग गैर-संख्यात्मक वर्ण होते हैं, तो अंतिम विभाजक को दशमलव विभाजक के रूप में उपयोग करें और दूसरों को त्याग दें। अगर मेरे पास केवल एक है, तो जांच करें कि क्या यह एक से अधिक बार होता है और अगर ऐसा होता है तो इसे छोड़ दें। यदि यह केवल एक बार प्रकट होता है, तो जांच करें कि इसके बाद उसके 3 अंक हैं या नहीं। यदि हां, तो इसे छोड़ दें, अन्यथा इसे दशमलव विभाजक के रूप में उपयोग करें।
स्पष्ट "सर्वोत्तम समाधान" उपयोगकर्ता की संस्कृति या ब्राउज़र का पता लगाने के लिए होगा, लेकिन यदि आपके पास एक यूएस-यूएस विंडोज/ब्राउज़र का उपयोग करने वाला फ्रांसीसी है तो यह काम नहीं करता है।
क्या नेट फ्रेमवर्क में कुछ पौराणिक काला जादू फ़्लोटिंग पॉइंट पार्सर है जो संख्या प्रारूप को स्वत: पहचानने की कोशिश में Double.(Try)Parse()
से बेहतर है?