وظيفة FRAC فقدان الدقة
-
20-09-2019 - |
سؤال
لدي متغير TDATETIME الذي تم تعيين قيمة في وقت التشغيل من 40510.416667. عندما أقوم باستخراج الوقت إلى متغير نوع time باستخدام وظيفة FRAC ، فإنه يضبطه على 0.41666666666. لماذا غيرت دقة القيمة وهل هناك عمل للاحتفاظ بالدقة من القيمة الأصلية IE. لتعيينه على 0.416667.
المحلول
أحد أسباب فقدان الدقة هو أن tdatetime هو مزدوج ، ومعلمة Frac وقيمة الإرجاع من النوع الممتد.
عند تحويل نقاط عائمة من نوع إلى آخر ، بعض يمكن أن تضيع الدقة. (نفس الشيء ينطبق على الحساب عليها).
لمقارنة قيمة التعويم بشكل صحيح ، يجب عليك استخدام وظيفة comparevalue من الوحدة الرياضية.
نصائح أخرى
Tdatetime هو رقم نقطة عائمة. لا يمكن تمثيل بعض الأرقام تمامًا كرقم عائم. 0.416667 / 0.41666666666 يبدو أنه واحد آخر.
يمكنك أن تتجول إلى 5 أو 6 أرقام للعرض. هذا يجعلك دقة إلى حوالي ثانية واحدة.
ما يجب أن يعرفه كل عالم كمبيوتر عن أرقام الفاصلة العائمة يجب أن يساعد ، كما ينبغي أن يكون ذلك دقة النقطة العائمة - سيعطيك ذلك بعض المعلومات التفصيلية للذهاب مع إجابة جيف.
شكرا على كل مساعدتك في هذا ، موضع تقدير كبير. للحصول على جولة problen الخاصة بي التي نشأت بسبب التغيير في الدقة ، استخدمت وظيفة المقارنة بدلاً من> أو <= العوامل لمقارنة الأوقات.