تقريب الأرقام إلى منزلتين عشريتين في JavaScript: كيف تفعل ذلك بشكل صحيح؟
مرحباً بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة في تقريب الأرقام. أحتاج إلى عرض الأسعار في سلة المتجر الإلكتروني، وأريد أن تظهر دائماً بحد أقصى منزلتين عشريتين. لكن إذا كان الرقم صحيحاً (مثلاً 10)، فأريد عرض "10" فقط بدون منازل عشرية.
حاولت استخدام `toFixed(2)`، لكنه يضيف دائماً أصفاراً: `(10).toFixed(2)` يُرجع `"10.00"`، بينما أحتاج `"10"`. جربت `Math.round(num * 100) / 100` – هذا يعمل، لكنه أحياناً يعطي نتائج غريبة بسبب عدم دقة الأرقام ذات الفاصلة العائمة. مثلاً، `Math.round(1.005 * 100) / 100` يُرجع `1` بدلاً من `1.01` كما توقعت.
أرجو إرشادي إلى الطريقة الصحيحة لتقريب الرقم إلى منزلتين عشريتين، مع عدم إظهار أصفار زائدة إذا لم تكن ضرورية؟ أحتاج حلاً موثوقاً يعمل مع أي أرقام، بما في ذلك الأرقام السالبة والقيم الصغيرة جداً (مثلاً، `0.0001` يجب أن تتحول إلى `0` وليس `0.00`).
أمثلة لما أريد الحصول عليه:
- `10