2012-10-02 10 views
38

मुझे दुनिया के विभिन्न हिस्सों में जावास्क्रिप्ट के पार्सफ्लैट फ़ंक्शन के डिफ़ॉल्ट व्यवहार के बारे में एक प्रश्न है।विभिन्न संस्कृतियों में जावास्क्रिप्ट पार्सफ्लैट

यूएस में, यदि आप "123.34" स्ट्रिंग पर parseFloat कहते हैं, तो आपको एक फ़्लोटिंग पॉइंट नंबर 123.34 मिल जाएगा।

यदि मैं स्वीडन या ब्राजील में कोड विकसित कर रहा हूं और वे दशमलव विभाजक के रूप में अवधि के बजाय अल्पविराम का उपयोग करते हैं, तो पार्सफ्लैट फ़ंक्शन "123,34" या "123.34" की अपेक्षा करता है।

कृपया ध्यान दें कि मैं नहीं पूछ रहा हूं कि अमेरिका में एक अलग संस्कृति के संख्या प्रारूप को कैसे पार्स किया जाए। मैं पूछ रहा हूं स्वीडन में पार्सफ्लैट या ब्राजील अमेरिका के अंदर ऐसा ही व्यवहार करता है, या क्या यह अपने स्थानीय प्रारूप में एक संख्या की अपेक्षा करता है? या इसके बारे में बेहतर सोचने के लिए, क्या ब्राजील/स्वीडन में एक डेवलपर को टेक्स्ट बॉक्स से टेक्स्ट निकालने के बाद parseFloat का उपयोग करने से पहले स्ट्रिंग्स को अंग्रेजी प्रारूप में परिवर्तित करना होगा?

अगर यह समझ में नहीं आता है तो कृपया मुझे बताएं।

+1

इसी प्रकार: http://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript – dyoo

उत्तर

54

parseFloat आपके लोकेल की परिभाषा का उपयोग नहीं करता है, लेकिन दशमलव अक्षर की परिभाषा का उपयोग करता है।

यह केवल पार्स . नहीं ,

मैं ब्राजील हूँ और मैं दशमलव संख्या को पार्स से पहले बिंदु के साथ अल्पविराम को बदलने के लिए।

parseFloat specification

+0

प्रश्न का उत्तर दिया गया। हर किसी की मदद के लिए बहुत बहुत धन्यवाद! – chumphries

8

नहीं है, parseFloat is specifiedDecimalLiterals, जो दशमलव विभाजक के रूप डॉट का उपयोग पार्स करने के लिए। यह वर्तमान पर्यावरण की लोकेल सेटिंग्स पर निर्भर नहीं है।

3

यह सिर्फ स्वीडन/ब्राजील नहीं है। यूएस में एफ.एक्स वे अक्सर बड़ी संख्या में कॉमा जोड़ते हैं, जैसे $5,762,325.25

parseFloat फ़ंक्शन अनिवार्य रूप से दशमलव के साथ सौदा करता है, स्थानीय स्तर पर नहीं।

सामान्य रूप से, जावास्क्रिप्ट कभी-कभी सामान्य तारों/संख्याओं/तिथियों को लोकेल-अनुकूल प्रारूपों में परिवर्तित कर सकता है, लेकिन दूसरी तरफ नहीं।

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