Ben toFixed () çağrı yapmadan önce parseFloat () ve Number () dönüşümleri arasında karar vermek zorunda kaldı. Aşağıda, yakalama sonrası kullanıcı girişini biçimlendiren bir sayı örneği verilmiştir.
HTML:
<input type="number" class="dec-number" min="0" step="0.01" />
Olay işleyicisi:
$('.dec-number').on('change', function () {
const value = $(this).val();
$(this).val(value.toFixed(2));
});
Yukarıdaki kod, TypeError istisnasına neden olacaktır. Html giriş türü "sayı" olmasına rağmen, kullanıcı girişinin aslında bir "dize" veri türü olduğunu unutmayın. Ancak, toFixed () işlevi yalnızca Sayı olan bir nesnede çağrılabilir.
Son kodum aşağıdaki gibi görünecektir:
$('.dec-number').on('change', function () {
const value = Number($(this).val());
$(this).val(value.toFixed(2));
});
Ben parseFloat () vs Number () ile döküm tercih sebebi ne boş bir giriş dizesi, ne de NaN değeri için ekstra bir doğrulama yapmak zorunda değilsiniz. Number () işlevi otomatik olarak boş bir dizeyi işleyecek ve sıfıra çevirecektir.