در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد

با سلام به همه دوستان و همراهان عزیز Itpro. در مطلب قبلی به تعریف توابع موجود در کلاس Number پرداختیم و گفتیم که کلاس های wrapper مربوط به انواع داده اولیه در جاوا از آن ارث بری می نماید پس کلاس های wrapper هم این متدها را دارند. در ادامه به توضیح ادامه توابع موجود در این کلاس ها خواهیم پرداخت

parseint

این متدر برای تبدیل رشته به نوع داده عددی استفاده می شود و به شکل های parseInt و parseDouble و یا سایر انواع داده استفاده می شود. این متد می تواند یک یا دو پارامتر ورودی داشته باشد که پارامتر اول برای رشته ورودی است و پارامتر دوم برای مبنای عددی است که مشخص می کند مبنای عدد مورد نظر چند است. شکل نوشتاری این متد به صورت زیر است:

static int parseInt(String s)
static int parseInt(String s, int radix)

مقدار بازگشتی این متد همیشه یک عدد می باشد. از این متد می توان برای تبدیل مبناها هم استفاده کرد. برای مثالی از این متد به کد زیر توجه کنید:

public class Test{ 

   public static void main(String args[]){
      int x =Integer.parseInt("9");
      double c = Double.parseDouble("5");
      int b = Integer.parseInt("444",16);

      System.out.println(x);
      System.out.println(c);
      System.out.println(b);
   }
}

خروجی کد به شکل زیر خواهد بود

9
5.0
1092

تا به این قسمت از مطالب در مورد متدهای کلاس های wrapper توضیح دادیم حال در ادامه به بررسی متد های موجود در کلاس Math خواهیم پرداخت که بر روی اعداد عملیات خاصی انجام می دهند.

متد abs

این متد قدر مطلق عدد داده شده را باز می گرداند. آرگومان ورودی این متد می تواند از نوع int, long , float, double, short, byte باشد. نحوه استفاده از این متد در کد زیر آورده شده است:

 public static  void main(String[] args){
        int a=-8;
        double b=100;
        float f=-90f;
        int resultA=Math.abs(a);
        double resultB=Math.abs(b);
        float resultF=Math.abs(f);
        System.out.println(resultA);
        System.out.println(resultB);
        System.out.println(resultF);

    }

خروجی کد بالا به شکل زیر خواهد بود:

8
100.0
90.0

متد ceil

این متد مقدار اعشاری عدد را حذف کرده و مقدار صحیح آن را بر می گرداند. ورودی این متد یک عدد float و یا double بوده و مقدار بازگشتی آن یک عدد double است که کوچکترین عدد صحیص را برمی گرداند. این متد شبیه به متد floor است. البته برای اعداد مثبت متد floor و ceil مانند یکدیگر هستند ولی برای اعداد منفی عملکرد متفاوتی دارند. متد floor از نظر مقدار بازگشتی و آرگومان ورودی مانند Ceil است. برای مثال به کد زیر توجه کنید:

public class Test{ 

   public static void main(String args[]){
      double d = -100.675;
      float f = -90;    

      System.out.println(Math.ceil(d));
      System.out.println(Math.ceil(f)); 
					 
      System.out.println(Math.floor(d));
      System.out.println(Math.floor(f)); 
   }
}

خروجی این کد به شکل زیر خواهد بود:

-100.0
-90.0
-101.0
-90.0

متد rint

این متد یک عدد double گرفته و آن را به نزدیکترین عدد صحیح روند می کند. به این معنی که عدد double را گرفته و نزدیکتری عدد صحیح به آن را برمی گرداند. خروجی این متد از نوع double خواهد بود با این که مقدار اعشاری هم ندارد.برای مثال از این متد به کد زیر دقت کنید:

public class Test{ 

   public static void main(String args[]){
      double d = 100.675;
      double e = 100.500;
      double f = 100.200;

      System.out.println(Math.rint(d));
      System.out.println(Math.rint(e)); 
      System.out.println(Math.rint(f)); 
   }
}

خروجی کد به شکل زیر است:

101.0
100.0
100.0

متد round

این متد یک عدد float و یا double را گرفته و مقداری از نوع int بازگردانی می کنند. تفاوت این متد با rint در این است که متد rint فقط double می گرفت و فقط double برمی گرداند ولی متد round هم می تواند ورودی float داشته باشد و هم double و مقدار بازگشتی آن int و long است. به این معنی که اگر ورودی اش double باشد خروجی long و اگر ورودی float داشته باشد خروجی int دارد. تفاوت دیگر این متد با rint در عملکرد آن در حالی که مقدار اعشاری 0.5 باشد. این متد به سمت بالا روند می کند و rint به سمت پایین روند می کند. مثالی از این متد در کد زیر آورده شده است.

101
101
100
90

متد های min, max

این متد ها دو عدد ورودی از هر نوع داده عددی دریافت کرده و عدد بزرگتر یا کوچکتر را برمی گردانند. به این معنی که min عدد کوچکتر و max عدد بزرگتر را برمی گرداند. این دو متد برای انواع داده های عددی به کار می روند. که در خط زیر نشان داده شده است.

double min(double arg1, double arg2)
float min(float arg1, float arg2)
int min(int arg1, int arg2)
long min(long arg1, long arg2)

مثالی از این متدها در کد زیر آورده شده است.

public class Test{ 

   public static void main(String args[]){
      System.out.println(Math.min(12.123, 12.456));      
      System.out.println(Math.min(23.12, 23.0));  
	  System.out.println(Math.max(12.123, 12.456));      
      System.out.println(Math.max(23.12, 23.0));
   }
}

خروجی کد بالا به شکل زیر است:

12.123
23.0
12.456
23.12

متد exp

در ریاضیات و مخصوصا قسمت لگاریتم ها عدد e بسیار کاربرد دارد. حال در جاوا نیز برای استفاده از این عدد و اعمال لگاریتمی امکاناتی فراهم شده است. یکی از این امکانات متد exp می باشد. این متد یک ورودی گرفته و در نتیجه e به توان عدد وارد شده را برمی گردانند. عدد e یک عدد با اعشار طولانی است که می توانید مقدار آن را با استفاده از Math.E به دست آورید. اگر نام ورودی متد exp را x بگذاریم خروجی این متد e^x خواهد بود. ورودی و خروجی این متد از نوع double خواهد بود. برای مثال به کد زیر توجه کنید:

public class Test{ 

   public static void main(String args[]){
      double x = 11.635;
      double y = 2.76;

      System.out.printf("The value of e is %.4f%n", Math.E);
      System.out.printf("exp(%.3f) is %.3f%n", x, Math.exp(x));  
   }
}

در این کد برای چاپ کردن مقادیر برای اولین بار از متد printf استفاده شده است. با استفاده از این متد می توان متن خروجی را فرمت بندی کرد. به این شکل که اگر دقت کنید در خط اولی که متد printf به کار برده شده است در داخل متن عبارت "%.4f" به کار برده شده است و در انتها یک عبارت عددی به عنوان ورودی به متد داده شده است که در اینجا عبارت عددی Math.E می باشد. معنی این خط این است که یک عبارت اعشاری با 4 رقم اعشار به جای "%4f" قرار می گیرد که آن عدد به عنوان ورودی داده شده است. در خط دوم printf نیز دو عدد با 3 رقم اعشار در داخل متن قرار گرفته است. خروجی کد بالا به شرح زیر خواهد بود:

The value of e is 2.7183
exp(11.635) is 112983.831

متد log

این متد برخلاف اسمش مقدار لگاریتم طبیعی عدد ورودی را برمی گرداند به عبارت دیگر این متد ln یک عدد را محاسبه می کند. ورودی و خروجی این متد عدد double است. مثالی از این متد در کد زیر آورده شده است. دقت کنید که در این کد نیز از متد printf نیز استفاده شده است.

public class Test{ 

   public static void main(String args[]){
      double x = 11.635;
      double y = 2.76;

      System.out.printf("The value of e is %.4f%n", Math.E);
      System.out.printf("log(%.3f) is %.3f%n", x, Math.log(x));
   }
}

خروجی کد به شکل زیر است:

The value of e is 2.7183
log(11.635) is 2.454

متد pow

این متد متد به توان رساندن می باشد. کار این متد به این شکل است که عدد ورودی اولی را به عنوان پایه توان در نظر گرفته و عدد دومی را به عنوان مقدار توان در نظر می گیرد. بنابراین عدد اول را به توان عدد دوم می رساند. نوع داده ورودی و خروجی این متد همه از نوع double هستند. برای مثال به کد زیر دقت کنید:

public class Test{ 

   public static void main(String args[]){
      double x = 11.635;
      double y = 2.76;

      System.out.printf("The value of e is %.4f%n", Math.E);
      System.out.printf("pow(%.3f, %.3f) is %.3f%n", x, y, Math.pow(x, y));

   }
}

کد بالا خروجی زیر را خواهد داشت:

The value of e is 2.7183
pow(11.635, 2.760) is 874.008

متد sqrt

این متد جذر عدد داده شده را برمی گرداند به عبارت دیگر این متد همان متد pow است با این تفاوت که آرگومان ورودی آن 0.5 می باشد. اعداد ورودی و خروجی این متد double می باشد. کد زیر یک مثال از این متد می باشد.

public class Test{ 

   public static void main(String args[]){
      double x = 11.635;

           System.out.printf("sqrt(%.3f) is %.3f%n", x, Math.sqrt(x));
   }
}

خروجی این کد به شکل زیر است:

sqrt(11.635) is 3.411

متدهای sin, cos, tan

این متدها برای محاسبه نسبت های مثلثاتی سینوس و کسینوس و تانژانت یک زاویه به کار برده می شوند. این متد ها هرکدام یک ورودی و یک خروجی دارند که ورودی متد همان زاویه است. نوع داده ورودی و خروجی متدها از نوع double می باشد. زاویه ورودی این متد ها باید به واحد رادیان باشد و درجه قبول نیست. در کد زیر مثالی از این متد ها آورده شده است:

public class Test{ 

   public static void main(String args[]){
     double degrees = 45.0;
     double radians = Math.toRadians(degrees);
 System.out.format("The value of pi is %.4f%n", Math.PI);
     System.out.format("The sine of %.1f degrees is %.4f%n", degrees, Math.sin(radians));
	 System.out.format("The cosine of %.1f degrees is %.4f%n", degrees, Math.cos(radians));
	  System.out.format("The tangent of %.1f degrees is %.4f%n", degrees, Math.tan(radians));
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

The value of pi is 3.1416
The sine of 45.0 degrees is 0.7071
The cosine of 45.0 degrees is 0.7071
The tangent of 45.0 degrees is 1.0000

متدهای asin, acos, atan

این متدها برخلاف سه متدی که قبلا گفته شد مقدار نسبت مثلثاتی را گرفته و زاویه آن را محاسبه می نمایند. مقدار ورودی و بازگشتی این متدها از نوع double می باشد. مثال این متدها در زیر آمده است:

public class Test{ 

   public static void main(String args[]){
   
     double degrees = 45.0;
     double radians = Math.toRadians(degrees);

     System.out.format("The value of pi is %.4f%n", Math.PI);
     System.out.format("The arcsine of %.4f is %.4f degrees %n", Math.sin(radians), Math.toDegrees(Math.asin(Math.sin(radians))));
	 System.out.format("The arccosine of %.4f is %.4f degrees %n", Math.cos(radians), Math.toDegrees(Math.acos(Math.sin(radians))));
	 System.out.format("The arctangent of %.4f is %.4f degrees %n", Math.cos(radians), Math.toDegrees(Math.atan(Math.sin(radians))));

   }
}

خروجی کد بالا به شکل زیر خواهد بود:

The value of pi is 3.1416
The arcsine of 0.7071 is 45.0000 degrees
The arccosine of 0.7071 is 45.0000 degrees
The arctangent of 1.0000 is 45.0000 degrees

همان گونه که در کد بالا مشاهده می کنید از متدهایی به نام های toRadians و toDegrees در این برنامه استفاده شده است. این دو متد برای تبدیل زاویه از واحد درجه به رادیان و از رادیان به درجه به کار می روند. به شکلی که متد toDegrees زاویه رادیان را گرفته و به درجه تبدیل می کند و متد toRadins عکس این عمل را انجام می دهد. دقت داشته باشید که ورودی و خروجی این دو متد از نوع double می باشد.

متد random

این متد برای ساخت اعداد تصادفی بین 0.0 تا 1.0 به کار می رود. حال اگر بخواهید که عددی در رنج خاصی تولید کنید باید از این متد استفاده کنید و مقدار تولید شده را ضرب کنید. مقدار بازگشتی این متد double خواهد بود. این متد آرگومان ورودی ندارد. برای مثالی از این متد به کد زیر توجه کنید.

public class Test{ 

   public static void main(String args[]){
     System.out.println( Math.random() );
     System.out.println( Math.random() );
   }
}

خروجی کد به شکل زیر خواهد بود:

0.16763945061451657
0.400551253762343

هربار که متد random فراخوانی شود یک عدد تصادفی جدید تولید خواهد شد. تا به این بخش از مطالب به بررسی کلاس های wrapper و همچنین کلاس استاتیک Math پرداختیم در این قسمت همه ی اعمال بر روی اعداد بود و متدهایی که با اعداد سرو کار داشتند توضیح داده شد. در بخش های آنیده به بررسی کاراکتر ها و رشته ها خواهیم پرداخت. Itpro باشید.

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#متدهای_مربوط_به_اعداد_در_جاوا #برنامه_نویسی_جاوا #نحوه_استفاده_از_کلاس_در_جاوا #آموزش_برنامه_نویسی_جاوا #توابع_ریاضی_در_جاوا #آموزش_جاوا #چاپ_رشته_با_فرمت_در_جاوا #آموزش_استفاده_از_کلاس_در_جاوا #کنترل_دسترسی_اعضای_کلاسها_در_جاوا #دوره_آموزشی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
2 نظر
iman313

سلام یه مشکل در قسمت abs هست که خروجی کد هست اما خود کد درست نیست و دیگه اینکه یه مشکل هم در قسمت round هستش در خط 2 " متد rint فقط double می گرفت و فقط double برمی گرداند ولی متد floor هم می تواند ورودی float داشته باشد و هم double " به جای floor فکر کنم باید میزاشت round و floor در انجا بی معنیه

فقط برای پیشرقت itpro نوشتم

مهدی عادلی فر

با تشکر از دقت شما دوست عزیز اشکالات گرفته شده تصحیح شد. از این که به فکر پیشرفت itpro هستید ممنونیم

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....