Elimizde String veri tipinde bir değer var ama bu değer üzerinde matematiksel bir işlem yapmamız gerektiği için tamsayıya ya da double'a dönüştürmemiz gerekiyor, ne yapacağız?
Eğer String içerisinde nokta ya da virgül konusunda bir problem yoksa çözüm kolay:
String piString="3.14";
double piDouble=Double.parseDouble(piString);
System.out.println(2*piDouble);
Çıktı: 6.28
Not: Küsürat ayrımları, bilgisayarların dil seçeneklerine göre değişiklik gösterir. Bu yüzden noktaysa virgül yapın ya da virgülse nokta yapın diyemiyorum. Nitekim hatalı bir yazımda aşağıdaki hata gelecektir:
Exception in thread "main" java.lang.NumberFormatException
Örnek:
String piString="3,14";
double piDouble=Double.parseDouble(piString);
System.out.println(2*piDouble);
Çıktı: Hata
Çözüm: Nokta da olsa virgül de olsa kendi küsürat ayracımıza çevirsek? Bu işlem için Java'da String ifadelerde yazıları ve harfleri değiştirmek yazımda paylaştığım replace metodunu kullanabiliriz.
String piString="3,14";
double piDouble=Double.parseDouble(piString.replace(',', '.'));
System.out.println(2*piDouble);
Çıktı: 6.28
Çözüm 2: Daha güvenli bir çözüm için Java'da try catch blokları kullanabiliriz. Java'da tryParse metodları olmadığı için daha güvenli bir dönüşüm yapamıyoruz. Ama en azından program hata verip yarıda kalmadan müdahale edebiliyoruz.
String piString="3,14";
try {
double piDouble=Double.parseDouble(piString);
System.out.println(2*piDouble);
} catch (NumberFormatException e) {
System.out.println("Dönüştürme hatası ");
}