Siapa pun yang pernah menggunakan metode toFix() di js harus mengetahui bahwa ada BUG kecil dalam metode ini.
Pembawaan desimal sedikit berbeda pada IE dan FF.
Misalnya (0,005) toFix(2)=0,00 di bawah yaitu. toFix(2)=0,01 di bawah FF.
Hal ini akan menyebabkan perbedaan data.
Kita dapat mencapai penyatuan presisi dengan mengesampingkan metode ini.
Copy kode kodenya sebagai berikut:
Nomor.prototipe.toFixed = fungsi
{
return (parseInt(ini * Math.pow( 10, s ) + 0,5)/ Math.pow( 10, s )).toString();
}
Namun masih ada masalah dengan ini. Di semua browser, String("0.050").toFix(2)=0.1
Kami dapat melihat bahwa Anda awalnya ingin mempertahankan dua tempat desimal tetapi berakhir dengan satu tempat desimal. Artinya. Penggantian ini hanya toFixed() yang secara otomatis akan membuang 0 terakhir.
Kita perlu melakukan proses lebih lanjut pada metode ini.
Copy kode kodenya sebagai berikut:
Nomor.prototipe.toFixed = fungsi
{
changenum=(parseInt(ini * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
indeks=perubahannum.indexOf(".");
jika(indeks<0&&s>0){
jumlahperubahan=jumlahperubahan+"";
untuk(i=0;i<s;i++){
jumlah perubahan=jumlah perubahan+"0";
}
}kalau tidak {
indeks=perubahanjumlah.panjang-indeks;
for(i=0;i<(s-index)+1;i++){
jumlah perubahan=jumlah perubahan+"0";
}
}
kembalikan nomor ganti;
}