ورود

نسخه کامل مشاهده نسخه کامل : چطور میتونم با c برنامه ای بنویسم که عدد رو به دو قسمت اعشاری و صحیح تبدیل کنه؟



lidaline
03-11-2009, 20:36
چطور میتونم با c برنامه ای بنویسم که عدد رو به دو قسمت اعشاری و صحیح تبدیل کنه؟وهمینطور تعداد رقم های صحیح رو بنویسه لطفا کمکم کنید :11:من واقعا موندم :41:

sin2x=2sinxcosx
03-11-2009, 21:45
وقتی عدد اعشاری تونو تو یه double مثلا با نام dbl ذخیره کردین ، می تونین اونو تو یه متغیر int مثلا با نام integer بذارین . حالا این integer قسمت صحیح عدد شماست . بعد اگه integer رو از dbl کم کنین و نتیجه رو تو یه متغیر double بذارین قسمت اعشاری تون هم بدست میاد .
در مورد دومی هم تو یه حلقه عددتون رو بر 10 تقسیم کنین و یدونه counter رو افزایش بدین تا وقتی که عددتون صفر بشه .

bahareh_bus
03-11-2009, 22:21
وقتی عدد اعشاری تونو تو یه double مثلا با نام dbl ذخیره کردین ، می تونین اونو تو یه متغیر int مثلا با نام integer بذارین . حالا این integer قسمت صحیح عدد شماست . بعد اگه integer رو از dbl کم کنین و نتیجه رو تو یه متغیر double بذارین قسمت اعشاری تون هم بدست میاد .

این روش امکان پذیره ولی به هیچ عنوان یک روش کارامد و استاندارد نیست !

شما میتونید از تابع استاندارد modf استفاده کنید که منحصرآ برای چنین کاری طراحی شده است. پیش نمونه این تابع رو میتونید در زیر مشاهده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این تابع یک عدد اعشاری را به دو قسمت صحیح و اعشاری تجزیه می کند، قسمت اعشار عدد num توسط تابع برگردانده میشود و قسمت صحیح ان در متغیر (اشاره گر) i قرار می گیرد. در ضمن این تابع در سرفایل math.h تعریف شده است.

مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خروجی :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ali zi zeperto
05-11-2009, 10:12
البته تا جاییکه من میدونم پارامتر دوم تابع modf باید از نوع اشاره گر به double یا long double باشه.

bahareh_bus
05-11-2009, 14:04
البته تا جاییکه من میدونم پارامتر دوم تابع modf باید از نوع اشاره گر به double یا long double باشه.

بله ، حق با شماست ولی به دلیل اینکه متغیر i بخش صحیح عدد رو برمی گردونه پس بدون از دست دادن هیچ دیتایی میتونیم از اشاره گرهای صحیح (int) استفاده کنیم.

دلیل استفاده از نوع int هم روشنی بیشتر برنامه بود.