दिलचस्प पोस्ट
होम बटन की तरह पॉवर बटन ओवरराइड करें सी # का प्रयोग कर एंटीवायरस को विंडोज़ पर खोजें कैसे गिट गणना फ़ाइल हैश करता है? एंड्रॉइड में मोबाइल डिवाइस के अक्षांश और देशांतर कैसे प्राप्त करें? डीआरएफ: नेस्टेड सीरियलइज़र के साथ सरल विदेशी कुंजी असाइनमेंट? PHP / MYSQL में एक के रूप में दो mysql क्वेरी कैसे निष्पादित करें? ES6 विनाशकारी फ़ंक्शन पैरामीटर – रूट ऑब्जेक्ट नामकरण सीएसआरएफ संरक्षण: क्या हमें हर प्रपत्र के लिए एक टोकन उत्पन्न करना है? PhpMyadmin में अधिकतम निष्पादन समय यूनिट परीक्षण सी कोड पैथ में फ़ायरफ़ॉक्स बाइनरी नहीं मिल सकता है सुनिश्चित करें कि फ़ायरफ़ॉक्स स्थापित है _GET में URL पैरामीटर का अधिकतम आकार सीएसएस गुण: प्रदर्शन बनाम दृश्यता सहिष्णुता के साथ अद्वितीय तत्व वापस लौटें यूट्यूब iframe खिलाड़ी एपीआई – ऑनस्टेट चेंज नहीं फायरिंग

उद्देश्य-सी में फ्लोट्स के साथ परेशानी

मुझे एक छोटी सी समस्या है और मुझे कोई हल नहीं मिल रहा है!

मेरा कोड है (यह केवल एक नमूना कोड है, लेकिन मेरा मूल कोड ऐसा कुछ करता है):

float x = [@"2.45" floatValue]; for(int i=0; i<100; i++) x += 0.22; NSLog(@"%f", x); 

उत्पादन 52.450001 है और 52.450000 नहीं है!

मुझे नहीं पता क्योंकि ऐसा होता है!

किसी भी मदद के लिए धन्यवाद!

~ हल ~

सभी को धन्यवाद! हां, मैंने डबल प्रकार के साथ हल किया है!

वेब के समाधान से एकत्रित समाधान "उद्देश्य-सी में फ्लोट्स के साथ परेशानी"

फ़्लोट्स एक निश्चित परिशुद्धता के साथ संख्या प्रतिनिधित्व हैं इस प्रारूप में प्रत्येक मूल्य का प्रतिनिधित्व नहीं किया जा सकता है। यहाँ भी देखें

आप आसानी से सोच सकते हैं कि ऐसा क्यों होता है: अंतराल (1..1) में संख्या की एक असीमित संख्या है, लेकिन एक फ्लोट में केवल सभी संख्याओं का प्रतिनिधित्व करने के लिए सीमित मात्रा में बिट्स हैं (-एमएक्सफ्लैट .. MAXFLOAT)।

अधिक उपयुक्त तरीके से: 32bit पूर्णांक प्रतिनिधित्व में एक प्रतिनिधित्व करने वाले पूर्णांक संख्याएं हैं, लेकिन वास्तविक मूल्यों की असीम असंख्य संख्याएं हैं जो 32 या 64 बिट के सीमित प्रतिनिधित्व में पूरी तरह से प्रदर्शित नहीं की जा सकतीं। इसलिए केवल उच्चतम और सबसे कम प्रतिनिधित्व योग्य वास्तविक मूल्य की सीमा नहीं है, बल्कि सटीकता के लिए भी।

तो अस्थायी बिंदु प्रभावित होने के बाद संख्या में कुछ अंक क्यों होते हैं? क्योंकि प्रतिनिधित्व दशमलव के बजाय एक द्विआधारी प्रणाली पर आधारित होता है, जिससे अन्य संख्याओं को आसानी से प्रदर्शित किया जाता है, दशमलव दशकों में।

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

यह मुझसे पूछ रहा है जैसे कि दशमलव में दशमलव 1/3 है। कोई फर्क नहीं पड़ता कि आप कितना मुश्किल प्रयास करते हैं, आप मुझे यह बता नहीं पाएंगे कि यह क्या है क्योंकि दशमलव उस नंबर का सटीक वर्णन नहीं कर सकता है।

फ़्लोट्स कुछ दशमलव संख्याओं का सटीक वर्णन नहीं कर सकते हैं।