در زبان C برای تبدیل عدد اعشاری به رشته باید از دستور ftoa استفاده بشه sprintf فقط برای موارد صحیح کار برد داره
موفق باشید
توی الکترونیک هادی جان بهتر میدونه؛ دخالت نمیکنم
ولی توی کامپیوتر و حافظه این چیزی که شما نوشتید این رو تولید میکنه:
[
attachment=13859]
یعنی این عدد: 0.75000
ولی در حالی که کدی که در ادامه من نوشتم این کد رو تولید میکنه:
[
attachment=13860]
یعنی 0.75
*نکته: الان بافر (Buffer) رشته هستش؛ در نتیجه وقتی اونو به توابعی بدیم که قصد چاپ کردنش رو داره (که فکر میکنم lcd_puts هم از این قاعده مستثنی نیست)؛ اونقدر پیش میره تا به NULL یا همون 0\ (که در عکس های بالا نشون داده شده) برسه
*نکته ۲: حالا چرا رقم تعداد ارقام بعد از اعشار شما متفاوت هست؟ به همین دلیل که توی نکته یک گفتم؛ مثلا توی عکس اولی که گذاشتم؛ خونه 0\ من مثلا توی خونه پنچم قرار داشت
کدی که من نشوتم اینه:
کد php:
#include <stdio.h>
int main(){
float adad = 0.75;
char buffer[20];
sprintf(buffer,"%.2f",adad);
return 1;
}
همونطور که میبینی از
استفاده کردم! ه این معنی که تا دو رقم اعشار رو واسم نگه دار؛ مثلا اگه عددم بود 0.75232354 باز هم تا دورقم رو نگه میداشت و همچنین اگه باشه 0.7 باز هم تا دورقم رو نگه میداره که نتیجه میشه 0.70 و . . .
اول صبحی چقدر چرت پرت میگم
الان جال میده این همه نوشتم مشکل بنده خدا حل نشه بازم
راستی اینجور مواقع بهترین راه دیباگ کردن برنامه هست که ببینی مشکل از چیه
اون عکسهایی که من گذاشتم برات رو توی gdb در لینوکس اجراش کردم و حافظه رو قدم به قدم خوندم ببنم مقادیری که توش میره چیا هست
صددردصد کدویژن هم این امکان رو داره که مرحله به مرحله بتونی کدت رو دیباگ کنی و مشکلاتش رو پیدا کنی
(۰۷-دى-۱۳۹۵, ۰۶:۱۸:۳۶)پروتیوbabyy نوشته است: [ -> ]راستی اینجور مواقع بهترین راه دیباگ کردن برنامه هست که ببینی مشکل از چیه
اون عکسهایی که من گذاشتم برات رو توی gdb در لینوکس اجراش کردم و حافظه رو قدم به قدم خوندم ببنم مقادیری که توش میره چیا هست
صددردصد کدویژن هم این امکان رو داره که مرحله به مرحله بتونی کدت رو دیباگ کنی و مشکلاتش رو پیدا کنی
دقیقا با دیباگ کردن مشکل حل میشه و کدویژن این امکان به درستی نداره
برای دیباگ کردن باید فایل با فرمت cof که کدویژن تولید میکنه رو با پروتئوس باز کنی و مرحله به مرحله مقدار متغیر بافر رو چک کنی و ببنی مشکل از کجاس