PDA

View Full Version : سوال: مشکل در نگه داشتن دقت متغیر در ++c



hootan
یک شنبه 30 تیر 1387, 22:28 عصر
با سلام
من در حال انجام یک پروژه با c++ و کامپایلر g++ هستم در این کار من نیاز دارم تا اعداد را با دقت بالا ذخیره کنم مثلا عددی مثل 3.000000485 ولی وقتی این عدد را در کد زیر بررسی کردم

#include <iostream>
using namespace std;
int main()
{
double a=3.000000485;
cout<<a<<endl;
double b;
b=a*100000000;
cout<< b<<endl;
return 0;
}
خروجی عدد 3 و 3e+08 بود. یعنی این که بخش اعشاری دور ریخته شده.
قسمت b را برای این کردم که یک وقت اشکال از تنظیمات cout نباشد.
اگر می شود راهنمایی کنید ممنون.

Nima_NF
یک شنبه 30 تیر 1387, 23:40 عصر
مقدار مورد نظر در a ذخیره می شود اما توسط cout نمایش داده نمی شود.

برای این کار ابتدا باید تعداد دقت مورد نظر قسمت اعشاری را برای cout تعیین کنید به شکل زیر :



double a = 3.000000485;

cout.precision( 10 );

cout<< a <<endl;

به شکل زیر هم با توابع C می توانید عمل کنید:



printf( "number: %.9f \n", a );