मुझे "असली" प्रकार के दो चर की तुलना में समस्या है। एक डेटासेट में संग्रहीत गणितीय ऑपरेशन का परिणाम है, दूसरा एक फॉर्म में एक संपादन फ़ील्ड का मान है, जिसे स्ट्रेटोफ्लैट द्वारा परिवर्तित किया जाता है और "रियल" चर में संग्रहीत किया जाता है। समस्या यह है: डेल्फी - दो "वास्तविक" संख्या चर की तुलना
आप देख सकते हैं, इस कार्यक्रम मुझे बताने की, कि 121,97 121,97 के बराबर नहीं है कोशिश कर रहा है ... मैं this topic पढ़ा है, और मैं copletely यकीन नहीं है , यह एक ही समस्या है। यदि यह था, तो वैरिएबल में एक ही निकटतम प्रतिनिधित्व योग्य संख्या के रूप में संग्रहीत संख्या दोनों नहीं होगी, जो 121.97 के लिए 121.96999 99999 99998 86313 16227 83839 70260 62011 71875
है?
अब मान लें कि वे एक ही निकटतम प्रतिनिधित्व योग्य संख्या के रूप में संग्रहीत नहीं हैं। मुझे कैसे पता चलेगा कि वे वास्तव में कैसे संग्रहीत हैं? जब मैं "सीपीयू" डीबगिंग विंडो में देखता हूं, तो मैं पूरी तरह से खो जाता हूं। मैं एड्रेस देखता हूं, जहां ये मान होना चाहिए, लेकिन कुछ बाइनरी, हेक्साडेसिमल या वास्तविक संख्या का जो कुछ भी प्रस्तुत नहीं है ... मैं मानता हूं कि उन्नत डिबगिंग मेरे लिए अज्ञात ब्रह्मांड है ...
संपादित करें: उन दो मान वास्तव में थोड़ा अलग हैं।
ठीक है, मैं सब कुछ समझने की जरूरत नहीं है। हालांकि मैं पैसे के साथ काम नहीं कर रहा हूँ, वहाँ अधिकतम 3 दशमलव स्थानों होंगे, इसलिए "मुद्रा" बाहर रास्ता
BTW है: गणना है:
DATA[i].Meta.UnUsedAmount := DATA[i].AMOUNT - ObjQuery.FieldByName('USED').AsFloat;
इस मामले में यह है 3695-3573.03
जेरा आरएसपी-13792 देखें। आप 'तुलनात्मक' फ़ंक्शन का आह्वान करना चाह सकते हैं। – Magoo
@ मगू यह रिपोर्ट फर्जी है। संकलक सही ढंग से व्यवहार करता है। –
'StrToFloat' जैसा व्यवहार आप व्यवहार करना चाहिए।लेकिन दूसरे मूल्य के बारे में क्या? इसकी गणना कैसे की जाती है। मुझे लगता है कि आपको वास्तविक समस्या पर ध्यान देना चाहिए, जिसे हम नहीं देख सकते हैं। –