BigDecimal ile Çalışma
Kesin ondalık aritmetiği
BigDecimal ile Çalışma, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.
Kesin Ondalık Matematiği
java.math paketindeki BigDecimal, keyfi hassasiyete sahip ondalık sayıları gizli yuvarlama hataları olmadan temsil eder. Finansal hesaplamalar için standart araçtır.
BigDecimal Oluşturma
Bir BigDecimal oluşturmanın en güvenli yolu, onu bir dizeden oluşturmaktır. Bu yöntem, yazdığınız basamakların tam olarak korunmasını sağlar.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal amount = new BigDecimal("42.50");
System.out.println(amount);
}
}Değişmezlik
BigDecimal değişmezdir. add gibi işlemler özgün değeri değiştirmez; yeni bir BigDecimal döndürür. Döndürülen değeri bir değişkende saklamalısınız.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("10");
a.add(new BigDecimal("5"));
System.out.println(a);
}
}Toplama ve Çıkarma
add ve subtract kullanırken sonucu saklamayı unutmayın. Her çağrı yeni bir değer döndürür.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal price = new BigDecimal("19.99");
BigDecimal tax = new BigDecimal("1.60");
BigDecimal total = price.add(tax);
System.out.println(total);
}
}Çarpma
multiply beklendiği gibi çalışır. Sonucun scale değerinin, işlenenlerin scale değerlerinin toplamı olduğunu unutmayın.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal unit = new BigDecimal("2.50");
BigDecimal qty = new BigDecimal("3");
System.out.println(unit.multiply(qty));
}
}Bölmede Dikkatli Olun
1'in 3'e bölünmesi gibi tam bölünmeyen değerleri bölmek, sonsuz bir ondalık sayı üretir. Bu durumda yalın divide bir ArithmeticException oluşturur.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal one = new BigDecimal("1");
BigDecimal three = new BigDecimal("3");
try {
System.out.println(one.divide(three));
} catch (ArithmeticException e) {
System.out.println("Need to specify rounding!");
}
}
}Yuvarlamayla Bölme
Güvenli bir şekilde bölmek için bir scale ve RoundingMode sağlayın. Burada iki ondalık basamağı koruyor ve yarıya geldiğinde yukarı yuvarlıyoruz.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal one = new BigDecimal("1");
BigDecimal three = new BigDecimal("3");
System.out.println(one.divide(three, 2, RoundingMode.HALF_UP));
}
}Değerleri Karşılaştırma
Sayısal değerleri karşılaştırmak için compareTo kullanın. equals kullanmayın; çünkü equals scale değerini de dikkate alır. Bu nedenle 2.0 ve 2.00, equals açısından eşit değildir, ancak compareTo açısından eşittir.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("2.0");
BigDecimal b = new BigDecimal("2.00");
System.out.println(a.equals(b));
System.out.println(a.compareTo(b) == 0);
}
}Kullanışlı Sabitler
BigDecimal kullanıma hazır sabitler sunar: BigDecimal.ZERO, BigDecimal.ONE ve BigDecimal.TEN. Kendi sabitlerinizi oluşturmak yerine bunları kullanın.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal sum = BigDecimal.ZERO;
sum = sum.add(BigDecimal.TEN);
System.out.println(sum);
}
}Bir Listeyi Toplama
Yaygın bir yaklaşım, BigDecimal.ZERO ile başlayıp bir döngüde her değeri eklemek ve her seferinde sonucu saklamaktır.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal[] prices = {
new BigDecimal("1.10"),
new BigDecimal("2.20"),
new BigDecimal("3.30")
};
BigDecimal total = BigDecimal.ZERO;
for (BigDecimal p : prices) {
total = total.add(p);
}
System.out.println(total);
}
}En İyi Uygulamalar
Temel noktaları unutmayın: değerleri dizelerden oluşturun, değerleri değişmez kabul edin, bölme işlemlerinde her zaman yuvarlama belirtin ve compareTo ile karşılaştırın.
Hızlı Kontrol
BigDecimal bilginizi sınayın.
Özet
BigDecimal ile çalışmayı öğrendiniz:
- Basamakların kesin olması için onu bir dizeden oluşturun
- Değişmezdir; bu nedenle her işlemin sonucunu saklayın
- Doğrudan
add,subtractvemultiplykullanın - Sonucu sonlu olmayan durumlarda
divideiçin bir scale veRoundingModegerekir equalsyerinecompareToile karşılaştırın
Sıkça Sorulan Sorular
“BigDecimal ile Çalışma” dersi ücretsiz mi?
Evet — “BigDecimal ile Çalışma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.
“BigDecimal ile Çalışma” dersinde ne öğreneceğim?
Kesin ondalık aritmetiği Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“BigDecimal ile Çalışma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Para İçin Neden double Kullanılmamalı
- BigDecimal ile Çalışma
- Yuvarlama ve Ölçek
- Büyük Sayılar İçin BigInteger