سؤال

لدي متغير TDATETIME الذي تم تعيين قيمة في وقت التشغيل من 40510.416667. عندما أقوم باستخراج الوقت إلى متغير نوع time باستخدام وظيفة FRAC ، فإنه يضبطه على 0.41666666666. لماذا غيرت دقة القيمة وهل هناك عمل للاحتفاظ بالدقة من القيمة الأصلية IE. لتعيينه على 0.416667.

هل كانت مفيدة؟

المحلول

أحد أسباب فقدان الدقة هو أن tdatetime هو مزدوج ، ومعلمة Frac وقيمة الإرجاع من النوع الممتد.

عند تحويل نقاط عائمة من نوع إلى آخر ، بعض يمكن أن تضيع الدقة. (نفس الشيء ينطبق على الحساب عليها).

لمقارنة قيمة التعويم بشكل صحيح ، يجب عليك استخدام وظيفة comparevalue من الوحدة الرياضية.

نصائح أخرى

Tdatetime هو رقم نقطة عائمة. لا يمكن تمثيل بعض الأرقام تمامًا كرقم عائم. 0.416667 / 0.41666666666 يبدو أنه واحد آخر.

يمكنك أن تتجول إلى 5 أو 6 أرقام للعرض. هذا يجعلك دقة إلى حوالي ثانية واحدة.

ما يجب أن يعرفه كل عالم كمبيوتر عن أرقام الفاصلة العائمة يجب أن يساعد ، كما ينبغي أن يكون ذلك دقة النقطة العائمة - سيعطيك ذلك بعض المعلومات التفصيلية للذهاب مع إجابة جيف.

شكرا على كل مساعدتك في هذا ، موضع تقدير كبير. للحصول على جولة problen الخاصة بي التي نشأت بسبب التغيير في الدقة ، استخدمت وظيفة المقارنة بدلاً من> أو <= العوامل لمقارنة الأوقات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top