View Full Version : مبتدی: مشكل اين قطعه كد كوتا چيست؟
hashashas
جمعه 22 آبان 1388, 16:36 عصر
مي خواهم قسمت اعشار يك عدد را بدون كمك هيچ تابعي جدا كنم.
چرا مثلا وقتي عدد 123.1 را به عنوان ورودي داده ميشه؟
خروجي: 0.0999985
آيا راهي مي شناسيد كه بدون استفاده از هيچ گونه تابعي اين كار انجام شود.
كد:
float number;
cin>>number;
cout<<(number-((int)number));
cin>>number
queen-mm
جمعه 22 آبان 1388, 18:04 عصر
بايد اين طور مي نوشتين:
cout<<n-int(n);
اين طو هم مي تونين بنويسين:
int main()
{
float n;
int m;
cin>>n;
m=int(n);
cout<<n-m;
getch();
}
mortezamsp
جمعه 22 آبان 1388, 18:12 عصر
با سلام.
جزء صحیح که یادته؟
include<math.h>
float sahih=floor(25.2);
این یکی هم سقف رو میده:
ba=ceil(x);
hashashas
جمعه 22 آبان 1388, 19:11 عصر
راه حل queen-mm جواب نميده و راه حل mortezamsp هم داره از تابع استفاده ميكنه.
يه بار ديگه سوال ها رو مي گم
1- چرا راه حل من جواب نميده؟(مثلا براي 123.1)
2- آيا راه حلي وجود داره كه قسمت اعشار رو بدون استفاده از توابع ++C به دست بياره؟
tdkhakpur
جمعه 22 آبان 1388, 21:01 عصر
شما براي اين كار ميتوانيد پردازنده 80×87 را مطالعه و چگونگي تغيير شكل اعداد اعشار و آفست دهي به قسمت اعشار و نحوه جايگزاري آن در قالب اعداد كوتاه و طويل را مطالعه كنيد.
ولي براي خارج كردن قسمت اعشار بصورت دقيق بايد از توابع آماده استفاده كنيد ولي اگر ميخواهيد خودتان طراحي كنيد فكر كنم دقت چنداني نخواهد داشت.
queen-mm
جمعه 22 آبان 1388, 22:19 عصر
راه حل queen-mm جواب نميده و راه حل mortezamsp هم داره از تابع استفاده ميكنه.
يه بار ديگه سوال ها رو مي گم
1- چرا راه حل من جواب نميده؟(مثلا براي 123.1)
2- آيا راه حلي وجود داره كه قسمت اعشار رو بدون استفاده از توابع ++C به دست بياره؟
دوست عزيز نه كد من اشكال داره نه كد شما.float چهار بايتيه.كار با float دقت كمتر و سرعت بالاتر.كار با double سرعت كمتر،حافظه ي اشغالي بيشتر ولي دقت بيشتر.واسه همين اگه مي خواي جوابت دقيق بياد بايد از double استفاده مي كردي.من فكر مي كردم همين كدت جواب نمي ده.ولي اگه با دقتش مشكل داري بايد double تعريف كني.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.