Mengenal Class BigDecimal Dalam Java
Class ini akan kita perlukan jika kita ingin perhitungan desimal dengan presisi yang tinggi
Cara membuat bilangan dengan BigDecimal adalah sebagai berikut :
BigDecimal a = new BigDecimal("3");
Note : import dulu package java.math.* atau class java.math.BigDecimal;
Untuk operasi dasar pada class BigDecimal adalah sebagai berikut :
1) Membandingkan Bilangan BigDecimal
Kita menggunakan method compareTo() untuk membandigkan 2 bilangan tipe data BigDecimal.method ini akan mengembalikan 1 jika bilangan pertama lebih besar, 0 jika bilangan pertama sama besar dengan bilangan kedua serta -1 jika bilangan pertama lebih kecil
Sebaiknya kita jangan menggunakan equals() untuk membandingkan BigDecimal karena equals() hanya akan mengembalikan true jika nilai dan skala nya sama.Sementara jika nilainya sama tapi skalanya beda maka equals() akan mengembalikan false .Sebagai contoh 3 dan 3.0 akan dianggap berbeda oleh equals()
2) Mengubah Float dan Double ke BigDecimal dan Sebaliknya
Kita bisa pake valueOf() dari class BigDecimal untuk mengubah tipe data float ataupun double ke BigDecimal
Sementara itu untuk operasi sebaliknya kita bisa method floatValue() dari objeknya untuk mengubah ke float dan doubleValue() dari objek nya untuk mengubah ke double
add() | Pertambahan |
subtract() | Pengurangan |
multiply() | Perkalian |
divide() | Pembagian |
remainder() | Modulus |
pow() | Perpangkatan |
max() | Nilai Maksimal |
min() | Nilai Minimal |
movePointLeft() | Menggeser Titik ke Kiri |
movePointRight() | Menggeser Titik ke Kanan |
di sini kita bisa menentukan mode pembulatan dan skala desimal nya cara nya yaitu seperti ini
Contoh :
BigDecimal a = new BigDecimal("5.424");
BigDecimal b = new BigDecimal("7.953");
MathContext ab = new MathContext(5,RoundingMode.HALF_UP);
BigDecimal hasil = a.multiply(b,ab);
System.out.println(hasil);//output 43.137
Untuk RoundingMode adalah metode pembulatan yang dipakai.Di sini ada macam-macam metode pembulatan yaitu :
UP, dibulatkan ke bilangan di atas nya contoh 2.3 dibulatkan ke 3 dan -1.4 dibulatkan ke -2
DOWN, dibulatkan ke bilangan di bawah nya contoh 2.3 dibulatkan ke 2 dan -1.4 dibulatkan ke -1
CEILING, pembulatan yang menambah nilai
Contoh 2.3 dibulatkan ke 3 dan -1.4 dibulatkan ke -1
FLOOR, pembulatan yang mengurangi nilai contoh 2.3 dibulatkan ke 2 dan -1.4 dibulatkan ke -2
HALF_UP, dibulatkan ke bilangan terdekat jika digit terakhir 5 maka akan dibulatkan ke atas
Contoh 2.5 dibulatkan ke 3 dan -5.5 dibulatkan ke -6
2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2
HALF_DOWN, dibulatkan ke bilangan terdekat jika digit terakhir 5 maka akan dibulatkan ke bawah
Contoh 2.5 dibulatkan ke 2 dan -5.5 dibulatkan ke -5
2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2
HALF_EVEN,dibulatkan ke bilangan terdekat jika digit terakhir 5 maka dilihat digit sebelumnya jika kurang dari 5 dibulatkan ke bawah,jika 5 atau lebih dibulatkan ke atas
Contoh 2.5 dibulatkan ke 2 dan -5.5 dibulatkan ke -6
2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2
UNNECCESSARY,fungsinya hanya untuk menghilangkan digit 0 di belakang desimal contoh 1.0 menjadi 1 dan -1.0 menjadi -1 jika digunakan pada bilangan desimal yang digitnya tidak ada nol maka akan menghasilkan error (tapi tergantung juga dengan skala yang ditentukan)
UP, dibulatkan ke bilangan di atas nya contoh 2.3 dibulatkan ke 3 dan -1.4 dibulatkan ke -2
DOWN, dibulatkan ke bilangan di bawah nya contoh 2.3 dibulatkan ke 2 dan -1.4 dibulatkan ke -1
CEILING, pembulatan yang menambah nilai
Contoh 2.3 dibulatkan ke 3 dan -1.4 dibulatkan ke -1
FLOOR, pembulatan yang mengurangi nilai contoh 2.3 dibulatkan ke 2 dan -1.4 dibulatkan ke -2
HALF_UP, dibulatkan ke bilangan terdekat jika digit terakhir 5 maka akan dibulatkan ke atas
Contoh 2.5 dibulatkan ke 3 dan -5.5 dibulatkan ke -6
2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2
HALF_DOWN, dibulatkan ke bilangan terdekat jika digit terakhir 5 maka akan dibulatkan ke bawah
Contoh 2.5 dibulatkan ke 2 dan -5.5 dibulatkan ke -5
2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2
HALF_EVEN,dibulatkan ke bilangan terdekat jika digit terakhir 5 maka dilihat digit sebelumnya jika kurang dari 5 dibulatkan ke bawah,jika 5 atau lebih dibulatkan ke atas
Contoh 2.5 dibulatkan ke 2 dan -5.5 dibulatkan ke -6
2.3 dibulatkan ke 2 dan -1.7 dibulatkan ke -2
UNNECCESSARY,fungsinya hanya untuk menghilangkan digit 0 di belakang desimal contoh 1.0 menjadi 1 dan -1.0 menjadi -1 jika digunakan pada bilangan desimal yang digitnya tidak ada nol maka akan menghasilkan error (tapi tergantung juga dengan skala yang ditentukan)
Note : hanya bisa memangkatkan dengan bilangan bulat saja contoh 2 pangkat 3 dan variabel pangkat nya juga harus int
4) Menyatakan Nol,Satu, dan Sepuluh Dengan BigDecimal
Kita bisa menyatakan bilangan nol,satu dan sepuluh dengan method spesial di BigDecimal yaitu sebagai berikut :
BigDecimal a = BigDecimal.ZERO;
BigDecimal b = BigDecimal.ONE;
BigDecimal c = BigDecimal.TEN;
System.out.println(a+" "+b+" "+c);//output 0 1 10
5) Membulatkan Bilangan Desimal
Mungkin udah disinggung tadi tentang pembulatan.Untuk pembulatan sendiri ada 2 cara untuk melakukannya yaitu dengan MathContext dan method setScale()
Dengan MathContext
MathContext ab = new MathContext(3,RoundingMode.HALF_EVEN);/*pembulatan 3 angka bena dengan mode half even*/
BigDecimal a = new BigDecimal("5.324",ab);
System.out.println(a);//output 5.32
Dengan setScale()
BigDecimal a = new BigDecimal("5.324");
BigDecimal b = a.setScale(2, RoundingMode.HALF_EVEN);/*pembulatan 2 angka desimal dengan mode half even
System.out.println(b);//output 5.32
Untuk mode pembulatan bisa anda baca di atas lagi
Mungkin itu saja postingan mengenai class BigDecimal semoga bisa bermanfaat...
Post a Comment for "Mengenal Class BigDecimal Dalam Java"
Jangan spam atau promosi di sini jgn juga taruh link aktif kalau mau dapat backlink bisa taruh di profil saja (Name/URL)