سؤال

هل هناك في روبي بعض الوظائف/بناء الجملة لمقارنة عوامات مع دلتا؟ شيء مشابه ل Assert_in_delta (المتوقع _float ، actual_float ، دلتا) من اختبار/وحدة لكن العودة منطقية؟

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

المحلول

(expected_float - actual_float).abs <= delta

نصائح أخرى

اعتمادًا على تطبيقك وما تمثله قيم النقطة العائمة الخاصة بك بالفعل ، قد يكون من المنطقي تحويلها إلى عقلاني بدقة معينة. ثم تتصرف المقارنات المباشرة دائمًا بشكل صحيح لأن العقلانيات هي مجرد أعداد صحيحة.

على سبيل المثال ، إذا كنت تعلم أنك تتعامل مع مبالغ العملة الأمريكية ، وتخزينها كـ amount.to_r.round(2) يسمح بإجراء مقارنات دقيقة للمساواة.

مجرد فكرة ... لا تحتاج جميع القيم غير السفلية إلى أن تكون عوامات ممثلة تمثيلا غير مصقول

قد تحتاج أيضًا إلى حساب نسبي / دلتا

http://realtimecollisiondetection.net/blog/؟p=89

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