5.00 / 1 oy

Java'da String'i Double'a Çevirmek

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ı ");
}

utku33

11.02.2020 02:51

Bu soru 2 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java'da String'i Double'a Çevirmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.