जहाँ तक मुझे अपने आप को याद है प्रोग्रामिंग मुझे सिखाया गया था कि समानता के लिए फ्लोटिंग पॉइंट नंबरों की तुलना न करें। अब, Lua प्रकार के बारे में Lua में प्रोग्रामिंग पढ़ते हुए number
, मैंने निम्नलिखित पाया:
संख्या प्रकार वास्तविक (डबल-सटीक फ़्लोटिंग-पॉइंट) संख्याओं का प्रतिनिधित्व करता है। लुआ का कोई पूर्णांक प्रकार नहीं है, क्योंकि उसे इसकी आवश्यकता नहीं है। फ्लोटिंग-पॉइंट अंकगणितीय त्रुटियों के बारे में व्यापक भ्रांति है और कुछ लोगों को डर है कि फ्लोटिंग-पॉइंट नंबरों के साथ एक साधारण वेतन वृद्धि भी अजीब हो सकती है। तथ्य यह है कि, जब आप पूर्णांक का प्रतिनिधित्व करने के लिए दोहरे का उपयोग करते हैं, तो कोई भी गोल त्रुटि नहीं होती है (जब तक कि संख्या 100,000,000,000,000 से अधिक न हो)। विशेष रूप से, एक Lua संख्या गोल समस्याओं के बिना किसी भी लंबे पूर्णांक का प्रतिनिधित्व कर सकती है। इसके अलावा, अधिकांश आधुनिक सीपीयू फ्लोटिंग-पॉइंट अंकगणित को जितनी जल्दी (या उससे भी अधिक) पूर्णांक अंकगणित करते हैं।
क्या यह सभी भाषाओं के लिए सही है? मूल रूप से अगर हम डबल्स में फ्लोटिंग पॉइंट से आगे नहीं जाते हैं, तो हम पूर्णांक अंकगणित में सुरक्षित हैं? या, प्रश्न शीर्षक के अनुरूप होने के लिए, क्या कुछ विशेष है जो लुआ अपने number
प्रकार के साथ करता है इसलिए यह पूर्णांक और फ्लोट-पॉइंट दोनों प्रकार के रूप में ठीक काम कर रहा है?