Avatar ·

تقريب Double إلى منزلة عشرية واحدة في Kotlin: كيف نحصل على 0.1 من 0.044999؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin لتطوير Android، وواجهت مشكلة غريبة في تقريب الأعداد العشرية. لدي متغير من نوع Double: `val number = 0.044999`. أحتاج إلى تقريبه إلى منزلة عشرية واحدة للحصول على 0.1 (أي تقريب رياضي صحيح للأعلى، لأن الرقم التالي بعد 0.0 هو 4، ولكن بالنظر إلى الرقم كاملاً، فإن 0.045 يعطي 0.1 عند التقريب إلى منزلة عشرية واحدة). حاولت استخدام `String.format("%.1f", number)`، لكنه يعطيني `0.0`، لأن format ينظر فقط إلى أول منزلة عشرية؟ ثم جربت `Math.round(number * 10.0) / 10.0`، ولكن النتيجة كانت `0.0` مرة أخرى. أنا في حيرة! إليك الكود الخاص بي: ```kotlin fun main() { val number = 0.044999 val rounded = Math.round(number * 10.0) / 10.0 println(rounded) // يطبع 0.0 } ``` كيف يمكنني الحصول على 0.1 من 0.044999؟ هل هناك طريقة في Kotlin للتقريب الرياضي الصحيح مع مراعاة جميع المنازل العشرية؟