2011-05-23 12 views
7

मैं अपने कुछ कोड का परीक्षण कर रहा था, जावास्क्रिप्ट में मैंने .1 + .2 जोड़ा और यह मुझे .30000000000000004 के बजाय .3 देता है। मुझे यह समझ में नहीं आता है। लेकिन जब मैंने जोड़ा .1 + .3 यह मुझे देता है .4। मैंने इसे गुगल किया और डबल प्रेसिजन के अतिरिक्त के बारे में कुछ पाया। लेकिन मुझे नहीं पता कि यह क्या है।डबल परिशुद्धता परिवर्धन में सहायता

उत्तर

14

यहाँ अनिवार्य कड़ी है: What Every Computer Scientist Should Know About Floating-Point Arithmetic

मूल रूप से, वहाँ कई आधार 10 नंबर होते हैं जो वास्तव में अधिकांश कंप्यूटर द्वारा उपयोग किया जाता चल बिन्दु प्रारूप में नहीं दर्शाया जा सकता है, इसलिए आप लोगों को आप पर प्रकाश डाला जैसे मुद्दों मिल जाएगा।

+0

+1 अच्छा लेख :) – alex

+2

:) मुझे लगता है कि मैंने इसमें से 20% सौ बार पढ़ा है ... एक दिन मैं जागने में सक्षम रहूंगा। – sje397

+0

इसका एक बड़ा लेख है, यदि आप इसे पढ़ चुके हैं तो क्या आप मुझे सार बता सकते हैं। –

1

फ़्लोटिंग पॉइंट नंबरों की परिशुद्धता सटीक है, क्योंकि संख्या बिट्स की सीमित संख्या में संग्रहीत होती है।

जिस नंबर को आप स्टोर करने का प्रयास कर रहे हैं उसे सटीक रूप से संग्रहीत नहीं किया जा सकता है, इसलिए अनुमान लगाया जाता है।

What Every Computer Scientist Should Know About Floating-Point Arithmetic

2

यदि आप के लिए जागते नहीं रह सकते हैं तो प्रत्येक कंप्यूटर वैज्ञानिक को फ़्लोटिंग-पॉइंट अंकगणितीय के बारे में क्या पता होना चाहिए, इसके बजाय जावास्क्रिप्ट-विशिष्ट Rounding in JavaScript आज़माएं।

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