یک عدد double داریم. می خواهیم یک برنامه جاوا بنویسید تا عدد double داده شده را به یک عدد صحیح (int) تبدیل کند.
مثال ها:
Input: double = 3452.234
Output: 3452
Input: double = 98.23
Output: 98
Double: یک نوع داده اعشاری 64 بیتی IEEE 754 با دقت دوبرابر است. نوع داده double معمولاً برای مقادیر اعشاری استفاده می شود. نوع داده double هرگز نباید برای مقادیر دقیق مانند ارز استفاده شود. مقدار پیش فرض آن 0.0 است .
مثال: double d1 = 10.5
Integer: نوع داده Integer یا int یک عدد صحیح دو علامتی 32 بیتی است. محدوده ارزش آن بین – 2,147,483,648 (-2^31) تا 2,147,483,647 (2^31 -1) است. حداقل مقدار آن – 2,147,483,648 و حداکثر مقدار 2,147,483,647 است. مقدار پیش فرض آن 0 است . نوع داده int معمولاً به عنوان یک نوع داده پیشفرض برای اعداد صحیح استفاده میشود.
مثال: int a = 10
رویکردها
روش های متعددی برای تبدیل نوع داده Double به نوع داده صحیح (int) وجود دارد. تعدادی از آنها در زیر ذکر شده است.
- با استفاده از TypeCasting
- با استفاده از متد Double.intValue()
- با استفاده از متد Math.round()
رویکرد 1: استفاده از TypeCasting
این تکنیک بسیار ساده و کاربرپسند است.
سینتکس:
double data = 3452.345 int value = (int)data;
مثال:
خروجی
Double - 3452.345
Integer - 3452
رویکرد 2: استفاده از متد Double.intValue().
این تکنیک مشابه روش قبل است. تفاوت اصلی روش typecasting با این روش این است که روش typecasting یک روش صریح است و این روش، روش کلاس Wrapper است که همه ارقام بعد از نقطه اعشار را کوتاه می کند.
سینتکس:
3452.345
Double newData = new Double(data);
int value = newData.intValue();
مثال:
خروجی:
Double - 3452.345
Double - 3452
رویکرد 3: استفاده از متد Math.round()
Math.round() یک مقدار double را می پذیرد و با افزودن 0.5 به مقدار و برش دادن اعشارآن، آن را به نزدیکترین مقدار long تبدیل می کند. سپس مقدار long را می توان با استفاده از typecasting به int تبدیل کرد.
سینتکس:
long Math.Round(Double doubleValue);
مثال:
خروجی
Double : 3452.345
Integer : 3452
Double : 3452.765
Integer : 3453
نکته: در اینجا می بینید که متد Math.round() با گرد کردن عدد به نزدیکترین عدد صحیح، double را به عدد صحیح تبدیل می کند.
به عنوان مثال – 10.6 با استفاده از متد Math.round() به 11 تبدیل می شود اما با استفاده از روش typecasting یا Double.intValue() به 10 تبدیل می شود .
دیدگاهها