کلاس Math
از کلاس Math برای انجام محاسبات ریاضی استفاده می شود. از این کلاس می توان برای گرد کردن اعداد، گرفتن جذر یا نتیجه توان یک عدد استفاده کرد. این کلاس یک کلاس final است و دارای تعدادی متد static بوده که از آنها برای انجام اعمال مختلف ریاضی از جمله به دست آوردن توان ، جذر گرفتن و … استفاده می شود. برای روشن شدن مطلب برخی از متدهای این کلاس را توضیح می دهیم.
متد | توضیح | |
abs | قدر مطلق یک عدد را بر می گرداند. | |
ceil | کوچکترین مقدار صحیحی که بزرگتر یا مساوی با عدد مورد نظر ما باشد را بر می گرداند. | |
cos | کوسینوس یک زاویه مشخص را بر می گرداند. | |
floor | بزرگترین مقدار صحیحی که کوچکتر یا مساوی با عدد مورد نظر ما باشد را بر می گرداند. | |
log10 | لگاریتم یک عدد در مبنای 10 را بر می گرداند. | |
max | بزرگترین عدد در بین چندین عدد را بر می گرداند. | |
min | کوچکترین عدد در بین چندین عدد را بر می گرداند. | |
pow | برای به توان رساندن یک عدد به کار می رود. | |
round | گرد کردن یک عدد اعشار به نزدیکترین مقدار صحیح. | |
sin | سینوس یک زاویه مشخص را بر می گرداند. | |
sqrt | جذر یک عدد را بر می گرداند. | |
tan | تانژانت یک زاویه را بر می گرداند. |
گرد کردن اعداد با استفاده از کلاس Math
می توان با استفاده از Math.ceil() و Math.floor() یک عدد با قسمت اعشار را گرد کرد. متد Math.ceil() یک عدد از نوع double را گرفته و یک مقدار از نوع double گرد شده را بر می گرداند. نتیجه این متد بزرگتر یا مساوی آرگومان دریافت شده است. Math.floor یک عدد double را گرد کرده و نتیجه کوچکتر یا مساوی آرگومان گرفته شده است. برای روشن شدن مطلب به مثال زیر توجه کنید :
double number = 34.567; double ceil = Math.ceil(number); double floor = Math.floor(number); System.out.println(MessageFormat.format("Math.Ceiling({0}) = {1}",number, ceil)); System.out.println(MessageFormat.format("Math.Ceiling({0}) = {1}",number, floor));
Math.Ceiling(34.567) = 35 Math.Floor(34.567) = 34
اگر بخواهید یک عدد اعشاری را گرد کنید می توانید از متد Math.round() استفاده کنید :
double firstNumber = 3.4; double secondNumber = 3.6; System.out.println(Math.round(firstNumber)); System.out.println(Math.round(secondNumber));
3 4
همانطور که در کد بالا مشاهده می کنید اگر اولین رقم اعشار از 5 کوچکتر باشد عدد اعشار رو به پایین و اگر بزرگتر از 5 باشد عدد اعشار رو به بالا گرد می شود.
به توان رساندن یک عدد با استفاده از کلاس Math
برای به توان رساندن یک عدد از متد Math.pow() استفاده می شود. این متد دو آرگومان از نوع double قبول کرده که اولین آرگومان پایه و دومی توان می باشد. مقدار برگشتی از این متد double است. به کد زیر توجه کنید :
for (int i = 0; i < 10; i++) { System.out.println(MessageFormat.format("2^{0} = {1}", i, Math.pow(2, i))); }
2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 2^8 = 256 2^9 = 512
گرفتن ریشه یک عدد
برای محاسبه ریشه یک عدد از متد Math.sqrt() استفاده می شود. این متد یک عدد به عنوان آرگومان قبول می کند که همان عددی است که می خواهیم ریشه آن را محاسبه کنیم . مقدار برگشتی از این متد هم double می باشد.
System.out.println(Math.sqrt(25));
5.0
یافتن بزرگترین و کوچکترین عدد با استفاده از کلاس Math
کلاس Math دارای متدهای Math.min() و Math.max() برای یافتن بزرگترین و کوچکترین عدد از بین چندین عدد می باشد. هر دو متد دو آرگومان از نوع عددی قبول می کنند. در حالت پیشفرض دو عدد را می توانید با هم مقایسه نمایید.
System.out.println(Math.min(1,2)); System.out.println(Math.max(1,2));
1 2
برای جلوگیری از محدودیت این متدها می توان به صورت تو در تو از آنها به صورت زیر استفاده کرد:
//Get the maximum and minimum of 3 numbers int max = Math.max(Math.max(1, 2), 3); int min = Math.min(Math.min(1, 2), 3); System.out.println(MessageFormat.format("Max = {0}", max)); System.out.println(MessageFormat.format("Min = {0}", min));
Max = 3 Min = 1
همچنین می توانید یک تابع تعریف کنید که کوچکترین و بزرگترین هر تعداد عدد را به شما معرفی کند :
package program; public class Program { static int GetMax(int[] numbers) { int maximum = numbers[0]; for (int i = 1; i < numbers.length; i++) { maximum = Math.max(maximum, numbers[i]); } return maximum; } static int GetMin(int[] numbers) { int minimum = numbers[0]; for (int i = 1; i < numbers.length; i++) { minimum = Math.min(minimum, numbers[i]); } return minimum; } public static void main(String[] args) { int[] numbers = { 32, 17, 45, 10, 5 }; int max = GetMax(numbers); int min = GetMin(numbers); System.out.println(max); System.out.println(min); } }
45 5
توابع GetMax() و GetMin() آرایه ای از اعداد صحیح قبول می کنند(هر تعداد عدد را قبول می کنند). در داخل توابع ما فرض را بر این گذاشته ایم که اولین مقدار بزرگترین و اخرین مقدار کوچکترین عدد است. سپس یک حلقه for ایجاد کرده که با اندیس 1 شروع می شود.با استفاده از متدهای Math.min() و Math.max() تعیین می کنیم که آیا عنصر جاری حلقه از مقدار جاری اعداد بزرگتر است یا کوچکتر. که در این صورت مقدار جاری را جایگزین متغیرهای بزرگ یا کوچک می کنیم. سپس مقادیر نتیجه را برگشت می دهیم.
Math.PI
از ثابت PI که مقدار 3.14159265358979323846 را در خود ذخیره دارد، زمانی که بخواهید محیط یا مساحت یک دایره را پیدا کنید، استفاده می شود . برای یافتن محیط یک دایره به صورت زیر عمل می شود که در آن radius شعاع می باشد :
double area = Math.PI * Math.pow(radius, 2);
کلاس Math دارای متدهای بیشتری است که ما به توضیح همین چند متد بسنده کردیم.
درود
برای گرد کردن با دقت چند رقم اعشار چه متد یا الگوریتمی میتوان بکار برد. مثلا 0.0002356768 را با دقت 6 رقم اعشار عدد 0.000236 بشود
برای بدست آوردن cot باید از چی استفاده کنیم
cot میشه 1 تقسیم بر تانژانت یعنی به صورت زیر :
البته در مثال بالا 45 یعنی درجه 45، شما هر درجه ای که مد نظرتونه بذارین