दिखा रहा है मेरे पास मेरे कार्यक्रम के साथ एक अजीब व्यवहार था जिसमें डबल परिशुद्धता खो रहा था। मेरे कोउट सही मूल्य दिखा रहे थे लेकिन फिर भी व्यवहार अप्रत्याशित था। इसलिए मैंने डीबग किया और पाया कि जीडीबी अप्रत्याशित मूल्य दिखाता है।gdb गलत डबल मान
double length =2.11;
//gdb shows 2.10 here but prints 2.11 correctly using cout at the end
cout<<"length; //It prints 2.11 correctly here
अक्सर ऐसे मुद्दों उत्पादन परिदृश्यों पर मुश्किल जहां डिबगिंग एक विकल्प नहीं है और एकमात्र विकल्प यथासंभव अधिक से अधिक प्रिंट उपयोग कर रहा है कर रहे हैं: के बाद ही सरल परिदृश्य है। कोई सुझाव मैं इस समस्या से कैसे बच सकता हूं?
गलत सवाल (क्योंकि आप इसे प्रेरित करने के लिए भूल गए हैं, और वास्तव में कुछ [XY समस्या] (http://xyproblem.info) ...) हैं। जैसा कि आपने टिप्पणी की थी, आप * संख्या * का उपयोग नहीं करते हैं लेकिन कुछ बारोक लंबाई प्रतिनिधित्व (चूंकि आपने टिप्पणी की है कि '2.11' का मतलब 2 फीट और 11 इंच होगा) –
यदि आप' डबल 'का उपयोग करते हैं तो http पढ़ने के लिए कई घंटे लगाना सुनिश्चित करें: //floating-point-gui.de/ –
@ बेसिलस्टारनकेविच: बिल्कुल अच्छी सलाह। इस ज्ञान के साथ सशस्त्र, आप पार्टियों पर एक हूट नीचे भी जाते हैं। – Bathsheba