PDA

View Full Version : سوال: در مورد اعداد اعشاری



majmaji
پنج شنبه 06 اسفند 1388, 00:23 صبح
سلام
:لبخندساده:
یک سوال من میخوام یک برنامه بنویسم که یک عدد اعشاری از کاربر بگیره و اون عدد رو گرد کنه یعنی مثلاعدد 6.89 که توسط کاربر وارد شده به 7 تبدیل بشه
برای شروع من این برنامه رو نوشتم

#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
float a;
int b;
cout << "yek adad ashari vared konid";
cin >> a;
b = a;
cout << "b barabaar ast ba " << b;


getch();
return 0;
}

البته نه برای حل این مساله چون میخواستم بدونم قسمت اعشاری که حذف میشه در این برنامه که من نوشتم کجا میره؟
این اطلاعات رو برای این میخوام بدونم که برنامه اصلی را به یه if بنویسم که یه شرط بزاره اگه مقدار اعشاری از این حد بیشتر بود اینکار و بکن و بلعکس
حالا شما میتونید کمکم کنید؟

amin1softco
پنج شنبه 06 اسفند 1388, 00:33 صبح
دوست من شما اگر به تابع های سر فایل math.h آشنا باشین می دونید که دوتا تابع هستند که این کار رو انجام می دهند floor و ceil فلور حکم سقف پایین رو داره و سیل حکم سقف بالا پس اینها قبلا نوشته شده شما به راحتی می تونید ازش استفاده کنید ......

Salar Ashgi
پنج شنبه 06 اسفند 1388, 14:32 عصر
از کد زیر استفاده کنید :



#include <iostream>
#include <conio>
#include <iomanip>
int main(){
double f = 6.89;
cout<<setprecision(1)<<f<<endl;
getch();
}

majmaji
پنج شنبه 06 اسفند 1388, 14:41 عصر
دوست من شما اگر به تابع های سر فایل math.h آشنا باشین می دونید که دوتا تابع هستند که این کار رو انجام می دهند floor و ceil فلور حکم سقف پایین رو داره و سیل حکم سقف بالا پس اینها قبلا نوشته شده شما به راحتی می تونید ازش استفاده کنید ......
خوب آخه مشکل همینه که نباید از math.h استفاده بشه
چون گفته به دو روش این که شما میفرمایین روش اول هست
روش دوم هم گفته که تا اونجا که به فکر خودم رسید این میتونه باشه...

majmaji
پنج شنبه 06 اسفند 1388, 19:01 عصر
از کد زیر استفاده کنید :



#include <iostream>
#include <conio>
#include <iomanip>
int main(){
double f = 6.89;
cout<<setprecision(1)<<f<<endl;
getch();
}



دوستان میشه بیشتر در مورد این کد توضیح بدید؟

simul8or
پنج شنبه 06 اسفند 1388, 19:26 عصر
دوستان میشه بیشتر در مورد این کد توضیح بدید؟
تابع setprecision مقدار دقت اعشار را هنگام درج در خروجی تعیین می کند.
وقتی مقدار 1 برای میزان دقت تعیین شود،تابع مقدار گرد شده ی عدد اعشار را بر می گرداند،(البته اعداد بین بازه ی -1 و 1 را شامل نمی شود).
با افزایش میزان دقت به n، در خروجی n-1 رقم اعشار نمایش داده می شود.
با قرار دادن cout<<fixed قبل از تابع setprecision دیگر عمل گرد کردن صورت نمی گیرد و n رقم اعشار عینا نمایش داده می شوند.