Java "stringUtils.isNumeric" sayıyı algılamıyor

Mucosoft

Megapat
Katılım
5 Mart 2014
Mesajlar
5.496
Makaleler
12
Çözümler
41
Bu kod normal bir sayıda sorunsuz çalışıyor fakat ondalık sayıda sayı olduğunu anlamıyor. Örneğin "28" yapınca bir sorun yok, doğru sonuç döndürüyor. "1.28" gibi bir sayı yapınca yanlış sonuç döndürüyor. Peki neden böyle bir şey oluyor? Ondalık sayıyı neden sayı yerine koymuyor?
 
Bu kod normal bir sayıda sorunsuz çalışıyor fakat ondalık sayıda sayı olduğunu anlamıyor. Örneğin "28" yapınca bir sorun yok, doğru sonuç döndürüyor. "1.28" gibi bir sayı yapınca yanlış sonuç döndürüyor. Peki neden böyle bir şey oluyor? Ondalık sayıyı neden sayı yerine koymuyor?

Kodun tamamını atar mısınız?
 
Java:
public static boolean isNumeric(String strNum) {
    if (strNum == null) {
        return false;
    }
    try {
        double d = Double.parseDouble(strNum);
    } catch (NumberFormatException nfe) {
        return false;
    }
    return true;
}

Hazır kullanmak yerine bu şekilde çözebilirsiniz.
 
NumberUtils.isCreatable ya da NumberUtils.isParsable kullanmayı deneyebilirsiniz.
Java:
public static boolean isNumeric(String strNum) {
    if (strNum == null) {
        return false;
    }
    try {
        double d = Double.parseDouble(strNum);
    } catch (NumberFormatException nfe) {
        return false;
    }
    return true;
}

Hazır kullanmak yerine bu şekilde çözebilirsiniz.
İkinizin kodu da çalışıyor, teşekkürler.
 

Geri
Yukarı