PDA

View Full Version : مشکل با عملگرهای مقایسه ای



Sepidar
چهارشنبه 09 دی 1383, 18:36 عصر
من فکر می کنم خروجی برنامه زیر باید 1 باشد، در صورتی که صفر است!!!

#include <iostream.h>

int main(){
double dt;

dt=0.1;
cout<<((dt*10.0)<=1.0)<<endl;
return 0;
}

linux
چهارشنبه 09 دی 1383, 19:33 عصر
من که اجرا کردم 1 داد! درسته!

Sepidar
چهارشنبه 09 دی 1383, 19:58 عصر
من این برنامه رو با <span dir=ltr>g++</span> و <span dir=ltr>Turbo C++</span> کامپایل و اجرا کردم؛ در هر دو مورد هم خروجی صفر بود. شما کامپایلرتون چی بوده؟

linux
چهارشنبه 09 دی 1383, 20:38 عصر
vc++2003

Sepidar
چهارشنبه 09 دی 1383, 21:43 عصر
نمیدونم چرا این شکلی میشه. ربطی به اون دستور

using namespace std;نداره؟
من تو توربو سی که اون دستور رو زدم قبول نکرد.

خیلی تو سی مبتدیم هنوز.....

Inprise
پنج شنبه 10 دی 1383, 08:30 صبح
خیلی تو سی مبتدیم هنوز.....

کدی که نوشتی نه C است و نه CPP . اگر میخای CPP بنویسی باید توابع از یک Namespace فراخوانی بشن و اگر قراره C بنویسی نمیتونی اینطوری از &lt;&lt; و >> و سایر ویژگیهای CPP استفاده کنی .

مرتضی ن.
پنج شنبه 17 دی 1383, 18:44 عصر
اصولا محاسبات ممیز شناور (floating point) خطا دارند، در vc هم اگر به جای double از float استفاده کنی، همین اشکال پیش می آید:

you can set a break pont and see the results:
dt 0.100000
(dt*10.0) 1.0000000149012
1.0 1.0000000000000

Cheers,
Morteza

Pars Giga
یک شنبه 15 خرداد 1384, 09:41 صبح
:strange: