پاسخ : کوچ کردن از کدویژن به AtmelStudio
گفتم الان باید بشینم یک تابع برا اینکار بنویسم.
مثلا یه تابع به اسم ftoa که همون کار را کنه .
خوب اگه اینجوریه شما میتونید به شکل زیر عمل کنید:
الان نیازمون اینه که یک عدد float را تو یک رشته بریزیم.(به عنوان مثال با دقت 2 رقم اعشار)
میشه بصورت زیر عمل کرد:
یعنی اول برنامه دوتا متغییر عدد صحیح اعلان کرد ( مثلا اینجا من td1 و td2 را تعریف کردم)
بعد قبل از اینکه از sprintf استفاده کنم ، عدد اعشاریمون(اینجا f ) را به دو قسمت تقسیم میکنیم. قسمت صحیح ریخته میشه تو td1 و قسمت اعشار ریخته میشه تو td2 .
بعد مقدایر را به sprintf میدیم.
البته راستش من خودم زیاد از این روش خوشم نیومد.(نمیدونم چرا ! کلا به دلم نمیچسبه. شاید به خاطر اینکه متغییر زیادی تعریف شده)
گفتم الان باید بشینم یک تابع برا اینکار بنویسم.
مثلا یه تابع به اسم ftoa که همون کار را کنه .
خوب اگه اینجوریه شما میتونید به شکل زیر عمل کنید:
الان نیازمون اینه که یک عدد float را تو یک رشته بریزیم.(به عنوان مثال با دقت 2 رقم اعشار)
میشه بصورت زیر عمل کرد:
کد:
#include <stdio.h> int main(void) { char str[10]; int td1,td2; float f=1.2; td1=(int)f; td2=(int)(f*100)%100; sprintf(str,"%d.%d",td1,td2); while(1); }
بعد قبل از اینکه از sprintf استفاده کنم ، عدد اعشاریمون(اینجا f ) را به دو قسمت تقسیم میکنیم. قسمت صحیح ریخته میشه تو td1 و قسمت اعشار ریخته میشه تو td2 .
بعد مقدایر را به sprintf میدیم.
البته راستش من خودم زیاد از این روش خوشم نیومد.(نمیدونم چرا ! کلا به دلم نمیچسبه. شاید به خاطر اینکه متغییر زیادی تعریف شده)
دیدگاه