كيفية استخدام "%f" لملء قيمة مزدوجة في سلسلة مع الحق الدقة
-
09-06-2019 - |
سؤال
أنا أحاول أن تعيش مع سلسلة مزدوجة القيمة باستخدام sprintf
مثل هذا:
sprintf(S, "%f", val);
ولكن الدقة يتم قطع ست عشرية.أنا بحاجة إلى حوالي 10 كسور عشرية الدقة.
كيف يمكن تحقيق ذلك ؟
المحلول
%[عرض].[الدقة]
العرض يجب أن تتضمن الفاصلة العشرية.
%8.2 يعني 8 أحرف على نطاق واسع ؛ 5 أرقام قبل نقطة و 2 بعد.حرف واحد محجوز نقطة.
5 + 1 + 2 = 8
نصائح أخرى
ما تريده هو التعديل:
sprintf(S, "%.10f", val);
رجل sprintf العديد من التفاصيل على شكل محددات.
أكثر اكتمالا الإشارة راجع ويكيبيديا printf المادة ، قسم "printf شكل النائبة" و مثال جيد على نفس الصفحة.
رعاية - إخراج sprintf تختلف عن طريق لغة C.هذا قد أو قد لا يكون ما تريد.انظر LC_NUMERIC في اللغة docs/صفحات الرجل.
%f
هو تعويم القيم.
حاول استخدام %lf
بدلا من ذلك.وهي مصممة على الزوجي (التي كانت تسمى طويلة يطفو).
double x = 3.14159265;
printf("15.10 اذا
", x);