07/08/2015 13

Java Math Sınıfı Kullanımı

Aritmeetic operatörleri kullanarak istediğimiz değeri hesaplatabiliriz. fakat bu çok karışık bir işlem olabilir ve işlem büyüdükçe programı ağırlaştırabilir. Javadaki Math sınıfı ile bu işlemler çok daha basit olabilir.

İşlem kalitesi : Math sınıfındaki işlemler çok çeşitlidir. İki sayıyı toplatabilirsinizde küp köküde rahatça aldırabilirsinizde. Bunlar çok kaliteli bir şekilde çalışmaktadır.

Mutlak Değer : Mutlak değer Matematiktende hatırlayacağımız gibi negatif olmayan değerdi. Eğer sayı zaten pozitif ise yapacak çok fazla birşey yok. İlk olarak java.lang.Math kütüphanesini entegre etmemiz gerekir.

Math sınıfından dönen değerler çok çeşitli olabilir. Int gönderirsen int döner, float gönderirsewn float döner, double gönderirsen double döner. Şimdi Örneğimize Geçelim Aşağıdaki örnekte Mutlak Değer için Abs kullanacağız...

 

import java.lang.Math;

public class Program {
    public static void main(String[] args) {

	// Burda int değer gönderdik
	int deger = Math.abs(-1);
	System.out.println(deger);

	// burda double gönderdik
	double deger2 = Math.abs(-1.23);
	System.out.println(deger2);

	int deger3 = Math.abs(1);
	System.out.println(deger3);
    }
}

Program çıktısı

1
1.23
1

Küçüğe Yuvarlama Fonksiyonu (Floor) : Bu fonksiyon bazen karıştırılabiliyor. Örnek olarak 1.9 değeri 1.0 a yuvarlanır. -1.3 fonksiyonuda -2.0 a yuvarlanır. Bu bazen karıştırılabiliyor. Fakat kolay bir mesele. Şimdi bunun örneğini yapalım


 
import java.lang.Math;

public class Program {
    public static void main(String[] args) {

	// Şimdi burdaki kullanıma bakalım.
	double floor1 = Math.floor(1.9);
	double floor2 = Math.floor(1.1);
	double floor3 = Math.floor(-1.3);

	System.out.println(floor1);
	System.out.println(floor2);
	System.out.println(floor3);
    }
}
 
Program çıktısı

1.0
1.0
-2.0

Arttırma Fonksiyonu (Ceil) : Bu fonksiyon ile sayıların virgülden sonraki kısımları yuvarlanacak şekilde sayıyı arttırmaktır. Virgülden sonraki kısım önemli değildir. Kaç olursa olsun 0 olacaktır... Şimdi bununla ilgili örneğimizi yapalım

 

import java.lang.Math;

public class Program {
    public static void main(String[] args) {


	double deger = Math.ceil(1.1);
	double deger2 = Math.ceil(-0.9);

	System.out.println(deger);
	System.out.println(deger2);
    }
}
Program Çıktısı

2.0
-0.0
KareKök Alma (Sqrt) : Girilen bir sayının karekökünün alınmasını sağlayan metoddur. Burda kütüphaneyi eklemeye gerek yoktur. Direk çağırırsanızda gelir.  

Java program that uses Math.sqrt

public class Program {
    public static void main(String[] args) {

	// ... Test the sqrt method.
	int deger = java.lang.Math.sqrt(4);
	double deger2 = java.lang.Math.sqrt(9);

	System.out.println(deger);
	System.out.println(deger2);
    }
}
  Program Çıktısı

2
3.0

Burda değişken türleirni double cinsinde tanımlamakta fayda var. int tanımlanırsa tam sayı döneceğinden virgülden sonra alan varsa göremezsiniz.

E ve Pi değerleri : Bazen programda E ve Pisabitlerini kullanmamız gerekebilir. Math sınıfı ile direk olarak bunları döndürebiliriz. Yani extra olarak değişken şeklinde tanımlamanıza gerek yok... Şimdi Bunlarla iilgili bir örnek yapalım...

 

public class Program {
    public static void main(String[] args) {

	//E ve Pi sabitlerini yazdıralım
	double e = Math.E;
	double pi = Math.PI;

	System.out.println(e);
	System.out.println(pi);
    }
}
 
Output

2.718281828459045
3.141592653589793

Exact metodu : Exact ile istediğimiz matematğiksel işlemi yaparız. Arttırma azaltma çarpma bölme tersleme gibi işlemleri yaparız.

 

import java.lang.Math;

public class Program {
    public static void main(String[] args) {

	// Kullanılabilir Exact metodlarını yazalım...
	int deger = Math.addExact(3, 5);
	int deger2 = Math.addExact(1000, 123);
	int deger3 = Math.subtractExact(100, 33);
	int deger4 = Math.multiplyExact(10, 4);
	int deger5 = Math.incrementExact(54);
	int deger6 = Math.decrementExact(34);
	int deger7 = Math.negateExact(100);
	// Şimdi sonuçları yazdıralım
	System.out.printlndeger + "n " +deger2 + "n " + deger3 + "n " + deger4 + " n" + deger5 + "n " + deger6 + "n " + deger7);

	// Bir hata alınırsada nasıl yakalanıp yazdırldığını gösterelim
	try {
	    int hatali = Math.multiplyExact(Integer.MAX_VALUE, 100);
	} catch (Exception ex) {
	    System.out.println(ex);
	}
    }
}
Program Çıktısı

8
1123
67
40
55
33
 -100
java.lang.ArithmeticException: integer overflow

Bu yazımızda buraya kadar

Burak Hamdi Tufan

İyi Çalışmalar...


Tags

Share this Post



Post a Comment

Success! Your comment sent to post. It will be showed after confirmation.
Error! There was an error sending your comment.

Comments

    There is no comment. Be the owner of first comment...