اريد تعلم لغة برمجة وتخايرت بين delphi ;pascal ;vb اريد نصيحة
مادا تنصحوني
لا اعرف حقا ما المترجم الذى استخدمته, لكن يمكن بالطبع طباعة متغير ذى قيمة عشرية بشكل صحيح! و هذا شىء فعلته و متأكد ان ملايين غيرى فعلوه دون مشاكل!
فى formatting output انت تدخل طول العدد الاقصى و هذا المفترض ان يكون معروفا او متوقعا, الأمر نفسه فى سى++ اذا اردت تحويل الرقم الى متغير حرفى (دالة gcvt).
عموما فى Delphi فان مكتبات VCL توفر وسائل أسهل لاخراج المتغيرات العشرية مثل formatfloat
وكيف عرفت قيمة المتغير؟ هل قمت باستخدام ال debugger ؟ ربما خطأ في حساباتك
الدالة formatfloat موجودة في المترجمين Free pascal و delphi وهي تستخدم لتغيير ال format وليس القيمة
وكما قال فادي
ملايين غيرى فعلوه دون مشاكل!
هل يمكن ان ترينا الكود الذي تسبب في المشكلة؟
اولا الحاسوب يقوم بتقريب الكسور ، يعني طول (او دقة) الرقم محدودة لذا النتيجة صحيحة
4.99999999999999999979E-0004 = 0.0005
و الرقم 0.0005 هو رقم دوري في النظام الثنائي
يمكنك استخدام
WriteLn(FormatFloat('0.######################',x));
اعتقد ان عدد المنازل العشرية اكثر من كافي
التعليقات