बीती रात मैं कुछ है कि मुझे एक अच्छा दस के लिए पागल कर दिया में भाग, पंद्रह मिनट इससे पहले कि मैं यह समझ से बाहर। लेकिन मुझे समझ में नहीं क्यों यह इस तरह से है, किसी को यहाँ तो मैं आशा करती हूं कि स्पष्ट कर सकते हैं।आउटपुट
VBA आईडीई में तत्काल खिड़की से:
?Format(0.5, "HH:MM AM/PM")
12:00 PM
?Format("0.5", "HH:MM AM/PM")
12:05 AM
?Format(CDbl("0.5"), "HH:MM AM/PM")
12:00 PM
this page से मुझे लगता है कि 0.5, 12:00 PM अनुरूप होना चाहिए के बाद से एक घंटे ०.०४१६६ है ... ((12 * (1/24) = 0.5)
)। और जैसा कि आप देख सकते हैं, यह तब होता है जब मैं Format()
पर नंबर पास करता हूं लेकिन यदि मैं स्ट्रिंग के समान नंबर पास नहीं करता हूं।
एक ही पृष्ठ से जानकारी के अनुसार, 1 मिनट 0.०,००,६९,४४४ ((1/(24*60))
) है ..., 12:05 अर्थ के रूप में 0.००,३४,७२,२२२ ((0 * (1/24)) + (5 * (1/(24*60)))
) Excel में संग्रहित किया जाना चाहिए। और, वास्तव में:
?Format(0.003472222, "HH:MM AM/PM")
12:05 AM
कुछ और विषमताएं मुझे समझ नहीं आता:
?Format(2.5, "HH:MM AM/PM")
12:00 PM
?Format("2.5", "HH:MM AM/PM")
02:05 AM
लेकिन ...
?Format(2.523, "HH:MM AM/PM")
12:33 PM
?Format("2.523", "HH:MM AM/PM")
12:33 PM
सब कुछ मैं दस्तावेज में पा सकते हैं का कहना है कि "टाइम्स हैं वास्तविक संख्या के हिस्से के रूप में संग्रहीत। दशमलव के दाईं ओर मान समय का प्रतिनिधित्व करते हैं। उदाहरण के लिए, दोपहर (12:00 अपराह्न) 0.5 का प्रतिनिधित्व करता है। " (से Excel 2010 के अंतर्निहित VBE शब्दावली) तो 2.5
के बाद से दशमलव के दाईं ओर भाग 0.5
है और 2.523
0.523
= (12 * (1/24)) + (33 * (1/(24*60)))
के बाद से 12:33 में परिणाम चाहिए 12:00 PM एक समय में परिणाम चाहिए। लेकिन वीबीए केवल उनमें से एक के लिए सही परिणाम देता है।
तो क्या कोई समझा सकता है क्यों वीबीए प्रदर्शित करता है जो असंगत व्यवहार प्रतीत होता है? या क्या मैं कुछ झुर्रियों में लापता हूं?
यह Excel 2010 में परीक्षण किया गया था और 2013
और यही कारण है कि स्पष्ट प्रकार महत्वपूर्ण हैं और वीबीए आपके लिए निहित रूपांतरण करने देता है, इस भाषा को इतने सारे लोगों के लिए एक हेडक्रैचर बनाता है। अच्छा लेख! –