Bir dizeyi sayıya dönüştürürken NaN sonucuyla ilgilenme konusunda yardıma ihtiyacım var.

Katılım
10 Ocak 2023
Mesajlar
11
Puanları
1
Yaş
25
Şu anda parseFloat() yöntemini kullanarak metni tam sayılara dönüştürmemi gerektiren bir JavaScript projesi üzerinde çalışıyorum. Karşılaştığım sorun, giriş metni geçerli bir tam sayı olmadığında senaryoların nasıl ele alınacağını bulmaktır.

İşte kodumun yoğunlaştırılmış bir versiyonu:
JavaScript:
function convertToNumber(input) {
    return parseFloat(input);
}

let userInput = "42abc";
let result = convertToNumber(userInput);

console.log("User input:", userInput);
console.log("Converted result:", result);
"Merhaba" gibi sayısal olmayan bir dize girdiğimde aşağıdaki sonucu alıyorum:
SQL:
User input: 42abc
Converted result: 42
NaN sonucu mantıklı olsa da, bu durumu nasıl ele alacağımdan emin değilim, bu yüzden bu scaler makalesini okudum. Sayısal olmayan girişi düzgün bir şekilde işlemek ve kullanıcıya daha bilgilendirici bir mesaj iletmek için kodu nasıl değiştirebilirim?

NaN sonuçlarıyla başa çıkma ve kullanıcı deneyimini geliştirme konusunda herhangi bir tavsiye çok takdir edilecektir.

Yardımınız için teşekkür ederiz.
 
JavaScript'de parseFloat() veya parseInt() gibi metni tam sayılara dönüştürme işlemlerinde geçerli olmayan girişleri engellemek için aşağıdaki gibi bir yaklaşım kullanabilirsiniz.

Bu yaklaşım, isNaN() fonksiyonunu kullanarak girişin bir sayı olup olmadığını kontrol eder ve kullanıcıya uygun bir hata mesajı gösterir:


function convertToNumber(input) {
const number = parseFloat(input);

if (!isNaN(number)) {
return number;
} else {
throw new Error("Geçerli bir sayı girişi yapmadınız.");
}
}

let userInput = "42abc";

try {
let result = convertToNumber(userInput);
console.log("User input:", userInput);
console.log("Converted result:", result);
} catch (error) {
console.error(error.message);
}

Bu kod örneğinde, önce parseFloat() ile dönüşüm yapılır ve ardından isNaN() fonksiyonu kullanılarak sonucun bir sayı olup olmadığı kontrol edilir.

Eğer bir sayı ise, bu sayı dönüştürülen sonuç olarak döner.

Eğer bir sayı değilse, bir hata gönderilir ve kullanıcıya "Geçerli bir sayı girişi yapmadınız." şeklinde bir hata mesajı gösterilir.
 
Son düzenleme:

Forum istatistikleri

Konular
128,198
Mesajlar
915,766
Kullanıcılar
449,978
Son üye
food_eng_1952

Yeni konular

Geri
Üst