اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تفاوت مشخصه‌های float و double در scanf؟

+2 امتیاز
464 نمایش

برای خوندن متغیرهای از نوع float و double با استفاده از scanf دو مشخصه داریم به شکل:

float f;
double d;
scanf("%f", &f);
scanf("%lf", &d);

اما برای نوشتن با استفاده از print فقط یک مشخصه داریم، مثل

printf("%f", f);
printf("%f", d);

خوندن و نوشتن چه فرقی دارن که این طوری می‌شه؟

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده یکشنبه ۴ فروردین ۱۳۹۲ در C++ توسط prodo  

2 پاسخ

0 امتیاز

شما برای چاپ double میتونین از این کد استفاده کنین:
printf("%.15g\n", b);
به نظر من دلیلش اینه که خود کاربر میتونه مشخص کنه که دقیقا چند رقم اعشار باید چاپ بشه و احتیاجی نیست که مشخصه های مختلف داشته باشه...

Don't Expect Anyone Except Yourself,...
پاسخ داده شده دوشنبه ۵ فروردین ۱۳۹۲ توسط Arash  
0 امتیاز

در تابع printf همواره double چاپ می‌شه نه float. بنابراین هنگامی که یه لیترال اعشاری یا ثابت اعشاری یا حتی متغیر اعشاری بهش داده بشه اون رو به عنوان double در نظر می‌گیره. حتی اگه float باشه.

بنابراین فقط نیاز به یک مشخصه براش داریم که از f برای این کار استفاده شده.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده یکشنبه ۶ مرداد ۱۳۹۲ توسط prodo