WEBVTT

00:00.110 --> 00:00.770
خوش برگشتید.

00:00.770 --> 00:07.520
در این ویدیو، می‌خواهم سریعاً نشان دهم چه اتفاقی می‌افتد وقتی تلاش می‌کنید نتیجه یک محاسبه ترکیبی از int و double را داخل یک int یا داخل یک double ذخیره کنید.

00:07.520 --> 00:11.630
پس اگر متغیری داشته باشیم به نام my int result و آن برابر با تقسیم int خودمان بر روی double باشد، می‌بینید

00:19.610 --> 00:24.800
double که اگر همین کار را با یک 
 انجام دهیم، خطا می‌گیریم.

00:24.800 --> 00:29.300
double اما اگر نتیجه را داخل یک 
 ذخیره کنیم، خواهید دید که خطا نمی‌گیریم.

00:29.330 --> 00:33.200
این به این دلیل است که یک int تنها می‌تواند مقادیر int را ذخیره کند.

00:33.200 --> 00:34.520
یعنی فقط اعداد صحیح.

00:34.520 --> 00:37.010
اما نتیجه این عملیات عدد صحیح نخواهد بود.

00:37.010 --> 00:38.840
به همین دلیل این خطا را دریافت می‌کنیم.

00:38.840 --> 00:40.430
پس این چیزی است که نمی‌توانیم انجام دهیم.

00:40.430 --> 00:47.660
اما زمانی که از double استفاده می‌کنیم می‌توانیم این دو نوع را ترکیب کنیم، زیرا double می‌تواند عدد صحیح را مدیریت کند.

00:47.660 --> 00:56.510
پس اگر یک عدد صحیح را بر یک عدد اعشاری تقسیم کنید، نتیجه یک عدد اعشاری خواهد بود.

00:56.510 --> 00:59.030
در اینجا 0.617 است.

00:59.030 --> 01:01.310
پس نتیجه به صورت double به دست می‌آید.

01:01.310 --> 01:03.200
و یک نتیجه درست دریافت می‌کنیم.

01:03.200 --> 01:07.130
حال اگر به جای double از یک عدد صحیح استفاده کنم چه می‌شود؟

01:07.130 --> 01:08.870
مثلاً فرض کنیم عدد هشت باشد.

01:08.870 --> 01:10.970
باشه، اجرا کنیم.

01:10.970 --> 01:11.840
می‌بینیم نتیجه صفر می‌شود.

01:11.840 --> 01:13.490
چرا صفر می‌شود؟

01:13.490 --> 01:14.630
چون پنج تقسیم بر هشت برابر با 0.6 است.

01:14.630 --> 01:20.510
این یعنی قسمت اعشاری حذف می‌شود.

01:20.510 --> 01:25.190
پس نتیجه اینجا ابتدا یک int خواهد بود.

01:25.190 --> 01:29.780
و هر چیزی بعد از نقطه اعشار حذف می‌شود.

01:29.780 --> 01:33.410
پس این عملیات نتیجه‌اش صفر خواهد بود.

01:33.410 --> 01:36.950
به همین دلیل صفر ذخیره می‌شود.

01:36.950 --> 01:38.540
حال اگر آن را به 8.0 تغییر دهم، نتیجه اعشاری به دست می‌آید.

01:38.540 --> 01:44.060
پس نتیجه اینجا 0.62 یا 6.25 است.

01:44.060 --> 01:49.340
این در هر دو جهت صدق می‌کند.

01:49.340 --> 01:51.350
تا زمانی که یکی از مقادیر double باشد، نتیجه هم double خواهد بود.

01:51.350 --> 01:56.330
می‌توانیم این موضوع را بررسی کنیم.

01:56.330 --> 01:59.000
مثلاً پنج تقسیم بر سه.

01:59.000 --> 02:02.180
در اینجا دوباره نتیجه یک int خواهد بود، نه double.

02:02.180 --> 02:06.950
پس این فقط برابر با یک خواهد بود.

02:07.280 --> 02:08.930
پس در واقع ما داشتیم 0.65، درست است؟

02:08.930 --> 02:12.680
یا 6.25.

02:12.680 --> 02:14.090
حال نتیجه می‌شود 1.625.

02:14.090 --> 02:17.960
اجرا کنیم.

02:17.960 --> 02:19.280
و می‌بینید 1.625 به دست می‌آید.

02:19.280 --> 02:28.130
چون پنج تقسیم بر سه به عنوان int برابر با 15.0 است.

02:28.130 --> 02:34.370
اما تقسیم بر سه می‌شود 1.666.

02:34.370 --> 02:37.040
پس نتیجه متفاوتی به دست می‌آید.

02:37.040 --> 02:47.330
در واقع 2.2916666 می‌شود که جمع 0.625 و 1.66666 است.

02:47.330 --> 02:48.200
باشه.

02:48.200 --> 02:55.280
پس این چیزی است که باید هنگام کار با int و double هنگام محاسبه در نظر بگیرید.

02:55.280 --> 02:57.200
و همین توضیح می‌دهد که چرا دفعه قبل وقتی میانگین را محاسبه کردیم،

02:57.200 --> 03:01.550
فقط یک عدد صحیح دریافت کردیم.

03:01.550 --> 03:03.380
 در نظر بگیرید.int و doubleپس این چیزی است که باید هنگام ترکیب 

03:03.380 --> 03:10.250
int و double وقتی با 
 کار می‌کنید و آن‌ها را با هم ترکیب می‌کنید، .

03:10.250 --> 03:10.910
این نکته مهم است
