بکندباز

تبدیل Double به Integer در جاوا

یک عدد 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;

مثال:

// Java program to convert Double to
// int using Typecasting

public class BKEB {

	// main method
	public static void main(String args[])
	{

		// Get the double value
		double data = 3452.345;
		System.out.println("Double - " + data);

		// convert into int
		int value = (int)data;

		// print the int value
		System.out.println("Integer - " + value);
	}
}

خروجی

Double - 3452.345
Integer - 3452

رویکرد 2: استفاده از متد Double.intValue()‎.

این تکنیک مشابه روش قبل است. تفاوت اصلی روش typecasting با این روش این است که روش typecasting یک روش صریح است و این روش، روش کلاس Wrapper است که همه ارقام بعد از نقطه اعشار را کوتاه می کند.

سینتکس:

3452.345
Double newData = new Double(data);
int value = newData.intValue()‎;

مثال:

// Java program to convert Double to int
// using Double.intValue()‎
public class BKEB {

	// main method
	public static void main(String args[])
	{

		// Get the double value
		Double data = 3452.345;
		System.out.println("Double - " + data);
		// Create a wrapper around
		// the double value
		Double newData = new Double(data);

		// convert into int
		int value = newData.intValue()‎;

		// print the int value
		System.out.println("Double - " + value);
	}
}

خروجی:

Double - 3452.345
Double - 3452

رویکرد 3: استفاده از متد Math.round()‎

Math.round()‎ یک مقدار double را می پذیرد و با افزودن 0.5 به مقدار و برش دادن اعشارآن، آن را به نزدیکترین مقدار long تبدیل می کند. سپس مقدار long را می توان با استفاده از typecasting به int تبدیل کرد.

سینتکس:

long Math.Round(Double doubleValue);

مثال:

// Java program to convert Double to int
// using Math.round()‎

public class BKEB {

	// main method
	public static void main(String args[])
	{

		// Get the double value
		double data1 = 3452.345;
		System.out.println("Double : " + data1);

		// convert into int
		int value1 = (int)Math.round(data1);

		// print the int value
		System.out.println("Integer : " + value1);
	
		double data2 = 3452.765;
		System.out.println("\nDouble : " + data2);

		// convert into int
		int value2 = (int)Math.round(data2);

		// print the int value
		System.out.println("Integer : " + value2);
	}
}

خروجی

Double : 3452.345
Integer : 3452

Double : 3452.765
Integer : 3453

نکته: در اینجا می بینید که متد Math.round()‎ با گرد کردن عدد به نزدیکترین عدد صحیح، double را به عدد صحیح تبدیل می کند.

به عنوان مثال – 10.6 با استفاده از متد Math.round()‎ به 11 تبدیل می شود اما با استفاده از روش typecasting یا Double.intValue()‎ به 10 تبدیل می شود .

 

zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*