Avatar ·

كيفية تقريب رقم إلى N من المنازل العشرية في Java؟

مرحبًا بالجميع! أنا مبتدئ في Java وواجهت مشكلة عند العمل مع الأعداد العشرية. أحتاج بعد العمليات الحسابية أن يُعرض الرقم بعدد معين من المنازل العشرية. على سبيل المثال، أحسب المتوسط الحسابي وأريد عرض النتيجة بمنزلتين: 5.67، وليس 5.6748912. حاولت استخدام `System.out.printf("%.2f", number)`، لكن هذا فقط للعرض. أحتاج إلى حفظ الرقم نفسه مقربًا للحسابات اللاحقة. حاولت القيام بذلك: ```java double value = 5.6748912; double rounded = Math.round(value * 100) / 100; System.out.println(rounded); // يطبع 5.0، وليس 5.67! ``` لماذا يحدث هذا؟ يبدو أنني ضربت في 100، وقربت، وقسمت — يجب أن يعمل. من الواضح أنني أغفل شيئًا. سمعت أيضًا عن `BigDecimal`، لكنني لا أفهم كيفية استخدامه بشكل صحيح. أرجو إرشادي إلى طريقة موثوقة تعمل مع أي أرقام (موجبة وسالبة) ولا تفقد الدقة. شكرًا مقدمًا! <<>>

لماذا