https://www.vevb.com/article/154898.htm
Di bawah ini kami akan memperkenalkan metode implementasi JavaScript untuk mempertahankan dua metode implementasi desimal:
pembulatan
Hasil pemrosesan berikut akan menjadi empat arah:
var num = 2.446242342;
No Four -way Entry
Hasil pemrosesan berikut tidak akan pergi empat rumah:
Yang pertama, pertama bawa bilangan bulat tepi desimal:
Math.floor (15.7784514000 * 100) / 100 // hasil output adalah 15.77
Tipe kedua digunakan sebagai string, menggunakan pencocokan reguler:
Nomor (15.7784514000.tstring (). Match (/^/d+(?: /./ d {0,2})?/) // Hasil outputnya adalah 15.77, dan bilangan bulat tidak dapat ditulis sebagai 10.0000.Catatan: Jika negatif, harap konversinya ke angka positif sebelum menghitung, dan akhirnya kembali ke angka negatif
JavaScript mempertahankan contoh dua angka desimal:
<type skrip = "Text/JavaScript"> // Cadangan dua angka desimal // Fungsi: Letakkan titik mengambang di antara empat rumah dan lima, dan setelah mengambil titik desimal, dua fungsi -bit fungsi todecimal (x) {var f = Parsefloat (x); if (isnan (f)) {return;} f = math.round (x*100)/100 setelah 2 2.00 fungsi todecimal2 (x) {var f = parsefloat (x); ToString (); += '0';} return s;} function fomatfloat (src, pos) {return math.round (src*math.pow (10, pos))/math.pow (10, pos);} // empat hinds and Wutong ("Keep 2 decimal decimal: + TODECIMAL ( + TODECIMAL ( 3.14159267); Alert ("Mandarin reserved 2 decimal numbers:" + TODECIMAL2 (3.14159267)); Alert ("Reserve 2 decimal: + TODECIMAL (3.14559267)); Alert ("Wajib 2 digit:" + Todecimalal 2 (2 (3.15159267)); waspada ("Cadangan 2 Nomor Desimal: + Fomatloat (3.14559267, 2)); waspada (" Cadangan 1 digit: + fomatfloat (3.15159267, 1)); // dua -bit desimal: " + 1000.003.tofixed (2)); peringatan (" Cadangan 1 digit: + 1000.08.tofixed (1)); Alert (cadangan 1 digit desimal: " + 1000.05.tofixed (1)); ) ;; ); TopRecision (2));Gunakan JavaScript untuk mengambil titik desimal float setelah dua poin.
1. Buang bagian desimal dan pertahankan bagian integer
Parseint (5/2)
2. Ambil ke atas, dan tambahkan desimal ke bagian integer untuk menambahkan 1
Math.ceil (5/2)
3, empat rumah dan lima masuk.
Math.round (5/2)
4, kalah
Math.Floor (5/2)
Metode alternatif
1. Cara paling bodoh
Salin kode kode sebagai berikut:
Fungsi get ()
{{
var s = 22.127456 + "" ";
var str = s.substring (0, s.indexof (".") + 3);
waspada (str);
}
2. Ekspresi ekspresi reguler yang baik
Salin kode kode sebagai berikut:
<type skrip = "Teks/JavaScript">
onload = function () {
var a = "23.456322";
Var lagi;
var re = /( #+9 /.9> 2}) **)-2:
Anew = a.replace (re, "$ 1");
Waspada (lagi);
}
</script>
3. Dia lebih pintar ...
Salin kode kode sebagai berikut:
<script>
var num = 22.127456;
peringatan (math.round (num*100)/100);
</script>
4. Teman -teman yang akan menggunakan hal -hal segar ... tetapi Anda perlu IE5.5+untuk mendukungnya.
5. JS mempertahankan 2 desimal (wajib)
Untuk titik desimal yang lebih besar dari 2 bit, fungsi di atas baik -baik saja, tetapi jika kurang dari 2 bit, seperti: Changetwodecimal (3.1), itu akan mengembalikan 3.1. :
Salin kode kode sebagai berikut:
Fungsi changetwodecimal_f (x) {
var f_x = parsefloat (x);
if (isnan (f_x)) {
Alert ('fungsi: changetwodecimal-> parameter e error');
Mengembalikan false;
}
var f_x = math.round (x * 100) / 100;
var s_x = f_x.toString ();
var pos_decimal = s_x.indexof ('.');
if (pos_decimal <0) {
pos_decimal = s_x.length;
s_x += '.';
}
While (s_x.length <= pos_decimal + 2) {{
s_x += '0';
}
Mengembalikan s_x;
}
Fungsi: Letakkan titik mengambang dan pergi empat rumah dan lima, ambil 2 digit setelah titik desimal.
Fungsi ini mengembalikan penggunaan format string: changetwodecimal (3.1415926) mengembalikan 3.14 changetwodecimal (3.1) mengembalikan 3.10 3.10