يبدو أن هذه أسئلة 5 بدلا من واحد. على أي حال:
std::fixed
يستخدم للإشارة إلى أنك ترغب دائمًا في الحصول على تنسيق نقطة ثابتة بدلاً من استخدام الترميز العلمي حيث يكون هذا التدوين أكثر ملاءمة. عندما يكون هناك العديد من الأرقام اللازمة لتمثيل القيمة بشكل معقول ، فإن التنسيق سيقوم بالتبديلx.yyyyyyEee
(يمكنك أن تطلب استخدام التنسيق العلمي دائمًا باستخدامstd::scientific
).std::setw()
لا يهتم ما هي القيمة المنسقة! عندما يتم تنسيق قيمة وهناك إيجابيout.width()
تعيين ، سيتم تجهيز الإخراج معout.fill()
الشخصية على الأقلout.width()
شخصيات واسعة. إذا كان الإخراج أكبر منout.width()
على أي حال ، لن تحدث حشوة. بعد كل عملية إخراج [التي تأخذout.width()
في الاعتبار] الout.width()
هو إعادة تعيين ل0
(لا يتم إعادة تعيين جميع خيارات التنسيق الأخرى تلقائيًا).- أي حرف يحسب نحو العرض ، بما في ذلك العلامة ، والآلاف من فواصل ، ونقاط عشرية ، وما إلى ذلك. لا تحسب النقطة العشرية نحو الدقة:
out.precision()
هو عدد الأرقام الكسرية (لstd::fixed
التنسيق) أو عدد الأرقام غير المكونة (لstd::scientific
التنسيق). - العرض هو عدد الأحرف التي سيتم ملؤها بواسطة الإخراج ، وتحدد الدقة عدد الأرقام [الكسرية] التي سيتم إنتاجها.
- يمكن أن تمثل قيم النقطة العائمة الثنائية قليلة جدًا من الأرقام العشرية (ل
float
إنه عادة 6 ؛ يمكنك معرفة عدد الأرقام التي يمكن استخدامها بأمان باستخدامstd::numeric_limits<float>::digits10
). محاولة استخدام أي أرقام أكثر من ذلك قد تؤدي إلى إخراج غير متوقع عند معالجة القيم العشرية (عند معالجة القيم الثنائية التي قد تكون مهتمًا بهاstd:numeric_limits<float>::digits
أماكن). قد ترغب في إلقاء نظرة على ما يجب أن يعرفه كل عالم كمبيوتر عن الحساب العائم.