الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار حول الدالة sprintf

بدأه khaled_prg في 23 نوفمبر 2010 · 3 رد · 1,118 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

سؤالي اليوم يتعلق بالدالة sprintf, انظر الكود :

#include<stdio.h>
#include<stdlib.h>
int main()
{
    float X = 9999.852;
    char SPRINTF[20];
    sprintf(SPRINTF,"%.6f",X);
    printf("%s\n",SPRINTF);
    system("pause");
    return 0;
}

الغريب في الأمر أن المتغير X ظهر هكذا :

9999.851563

أعرف أن الأمر يتعلق بترميز الأعداد الحقيقية في الذاكرة و لكن كيف نجعل بقية الخانات (الواقعة بعد الخانة الثالثة من الفاصلة) معدومة (هكذا 9999.852 ) !؟, بشكل عام .. بالنسبة للخانات الواقعة بعد الفاصلة و التي لم نعطها قيما, كيف نجعلها معدومة عند تحويل العدد إلى string.

تحياتي,

#2

وعليكم السلآم ورحمه الله وبركاته

لـ نجعل فقط 3 خانات هي الي تظهر بعد الفآ’صله

sprintf(SPRINTF,"%.6f",X);

نقوم بتغير العدد 6 الى 3 لنجعل فقط 3 اعداد بعد الفآصله .. :)

1 −1
#3

أعلم ذلك :) و لكن المشكلة تكمن في أن المتغير X يُدخله المستخدم و بالتالي لا نعرف ما هو عدد الأرقام التي تقع بعد الفاصلة !

هل من حل !؟

مواضيع مشابهة