كيفية استخدام "%f" لملء قيمة مزدوجة في سلسلة مع الحق الدقة

StackOverflow https://stackoverflow.com/questions/69743

سؤال

أنا أحاول أن تعيش مع سلسلة مزدوجة القيمة باستخدام sprintf مثل هذا:

sprintf(S, "%f", val);

ولكن الدقة يتم قطع ست عشرية.أنا بحاجة إلى حوالي 10 كسور عشرية الدقة.

كيف يمكن تحقيق ذلك ؟

هل كانت مفيدة؟

المحلول

%[عرض].[الدقة]

العرض يجب أن تتضمن الفاصلة العشرية.

%8.2 يعني 8 أحرف على نطاق واسع ؛ 5 أرقام قبل نقطة و 2 بعد.حرف واحد محجوز نقطة.

5 + 1 + 2 = 8

نصائح أخرى

ما تريده هو التعديل:

sprintf(S, "%.10f", val);

رجل sprintf العديد من التفاصيل على شكل محددات.

رعاية - إخراج sprintf تختلف عن طريق لغة C.هذا قد أو قد لا يكون ما تريد.انظر LC_NUMERIC في اللغة docs/صفحات الرجل.

%f هو تعويم القيم.

حاول استخدام %lf بدلا من ذلك.وهي مصممة على الزوجي (التي كانت تسمى طويلة يطفو).

double x = 3.14159265;
printf("15.10 اذا ", x);

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top