"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يعمل حقل الدقة فعليًا مع `%g` في `fmt.Printf`؟

كيف يعمل حقل الدقة فعليًا مع `%g` في `fmt.Printf`؟

تم النشر بتاريخ 2024-11-08
تصفح:641

How Does the Precision Field Actually Work with `%g` in `fmt.Printf`?

سلوك غير متوقع لـ fmt.Printf مع حقول العرض والدقة لـ %g

فهم الوثائق الغامضة

وثائق حقول التنسيق الخاصة بـ fmt.Printf لقيم الفاصلة العائمة تنص على ما يلي:

"بالنسبة لقيم الفاصلة العائمة، يعين العرض الحد الأدنى لعرض الحقل
وتحدد الدقة عدد المنازل بعد العلامة العشرية، إذا كان
مناسبًا، باستثناء أنه بالنسبة لـ %g/%G فإنه يحدد العدد الإجمالي للأرقام. "

يكمن الجزء المحير في استخدام "it" في الجملة الأخيرة. إنه يشير في الواقع إلى "الدقة"، وليس "العرض".

السلوك الحقيقي لـ %.9g

]

على عكس الحدس الذي يقول بأن %.9g يجب أن ينتج إجمالي 9 أرقام مهمة، فإنه يشير إلى "الدقة" وليس "العرض". في الواقع، يأخذ في الاعتبار الأرقام بعد العلامة العشرية فقط.

على سبيل المثال، سيتم تنسيق 123456.789 كـ 123.4e 03 لأن %.9g يقتطع بشكل فعال أي أصفار بادئة.

على العكس، سيتم تنسيق 0.0000012345 كـ 1.2345 e-06 لأن %.9g يأخذ في الاعتبار جميع الأرقام المهمة بعد العلامة العشرية.

تأثير العرض والدقة

يحدد حقل العرض الحد الأدنى لعرض السلسلة المنسقة بأكملها، بما في ذلك العلامة العشرية النقطة والأس (إن وجد).

يقوم حقل الدقة، كما هو موضح أعلاه، بتعيين عدد الأرقام المهمة بعد العلامة العشرية.

بالنسبة إلى %g، يتجاوز حقل الدقة حقل العرض . ومع ذلك، إذا تجاوزت السلسلة المنسقة العرض المحدد، فسوف تمتد إلى ما هو أبعد من العرض المحدد.

شرح المثال المعطى

تذكر أن المثال يتضمن تنسيق قيم الفاصلة العائمة التالية باستخدام .9g:

  • 0.0606060606060606
  • 0.3333333333333333
  • 0.05
  • 0.4
  • 0.1818181818181818
  • 0.0606060606060606: ال دقة 9 تقطع الأصفار البادئة، مما يؤدي إلى 0.0606060606، والذي يتناسب مع عرض 10.
  • 0.3333333333333333: على غرار المثال الأول، السلسلة الناتجة 0.333333333 تتناسب مع عرض 10.
  • 0.05: مع وجود رقمين مهمين فقط، يتم تعبئة 0.05 بمسافات لتلبية الحد الأدنى للعرض وهو 10.
  • 0.4: على غرار 0.05، يتم أيضًا تعبئة 0.4 لتلبية الحد الأدنى للعرض وهو 10.
  • 0.1818181818181818: دقة 9 تؤدي إلى 0.181818182 مع تقريب الرقم 2 لأعلى. تناسب هذه السلسلة عرض 10.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3