کلاس 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 دارای متدهای بیشتری است که ما به توضیح همین چند متد بسنده کردیم.