التقريب إلى منزلتين عشريتين في JavaScript: الحل الصحيح
مرحبًا بالجميع! واجهت مهمة تبدو بسيطة: أحتاج إلى تقريب الأرقام إلى منزلتين عشريتين، ولكن فقط إذا كان ذلك ضروريًا. أي إذا كان الرقم 10.5 — يُترك كما هو، وإذا كان 10.456 — يُقرب إلى 10.46.
المشكلة هي أن الطرق القياسية في JavaScript تتصرف بشكل غريب. على سبيل المثال، `toFixed(2)` تُرجع سلسلة نصية وليس رقمًا، وقد تعطي نتائج غير متوقعة بسبب أخطاء الأعداد ذات الفاصلة العائمة.
```javascript
// مشكلة مع toFixed
console.log(1.005.toFixed(2)); // يطبع "1.00" بدلاً من المتوقع "1.01"
console.log(0.1 + 0.2); // 0.30000000000000004
```
جربت استخدام `Math.round(num * 100) / 100`، لكن هذا أيضًا يعطي أخطاء:
```javascript
// مشكلة مع Math.round
console.log(Math.round(1.005 * 100) / 100); // 1 بدلاً من 1.01
console.log(Math.round(1.255 * 100) / 100); // 1.25 بدلاً من 1.26
```
أرجو إرشادي إلى الطريقة الصحيحة والموثوقة لتقريب الأرقام إلى منزلتين عشريتين مع مراعاة جميع خصائص JavaScript؟ أحتاج إلى أن تكون النتيجة