Konstanta matematika ini merupakan konstanta umum yang digunakan secara internasional, seperti nilai Pi. Dimungkinkan untuk membuat nilai pi dalam bentuk variabel dengan nilai 3,14; . Karena sebenarnya nilai Pi memiliki banyak angka desimal dibelakang koma. Demi akurasi, disediakan beberapa konstanta yang jika dipanggil dengan pernyataan akan menyajikan nilai dengan tingkat akurasi yang hampir sempurna Show
Konstanta dalam matematika dalam javascript adalah sebagai berikut
Dalam menulis fungsi konstan ini, tidak diperlukan argumen. Cukup tulis dalam formulir seperti yang dicetak tebal di atas. Contoh tulisannya adalah sebagai berikut, var r = 7; Fungsi Matematika dalam JavascriptFungsi Angka, PembulatanMatematika. abs(). Fungsi ini untuk mencari nilai mutlak atau absolute value. Dengan kata lain, semua nilai negatif akan dijadikan positif dan nilai positif akan tetap positifMatematika. bulat(). Fungsi ini dimaksudkan untuk melakukan pembulatan sesuai aturan yang kita ketahui. Untuk nilai carry, 5 akan dibulatkan ke bawah dan ke atas atau sama dengan 5 dibulatkan ke atas Matematika. ceil(). Fungsi ini digunakan untuk pembulatan. Seperti angka 1,23 dibulatkan menjadi 2. Angka 2,98 maka diperoleh angka 3 Matematika. lantai(). Fungsi ini digunakan untuk pembulatan ke bawah. Seperti angka 4,76 dibulatkan menjadi 4. Dan untuk angka 3,02 dibulatkan menjadi 3 Matematika. maks(). Digunakan untuk mencari nilai maksimum. Di dalam tanda kurung akan ada beberapa nilai atau beberapa variabel bilangan yang ingin dicari maksimumnya. Seperti Matematika. maks(a,b,c,d); . Sedangkan untuk mencari nilai minimum atau terkecil dapat digunakan perintah Math. menit() Matematika. acak(). Digunakan untuk mengambil nilai acak dari angka 0-1. Untuk merubah ke bentuk puluhan misalnya dikalikan saja dengan 100, atau untuk 100-1000 bisa dikalikan dengan 1000 dan seterusnya. Misalnya seperti ini, Matematika. acak(); Fungsi trigonometri dalam JavascriptMatematika. acos() / Matematika. garam() / Matematika. Dan(). Fungsi ini digunakan untuk mencari arccosine, arcsine, dan arc tangent dari suatu nilai. Pernyataan dalam kurung () harus antara -1 dan 1 karena seperti dalam matematika nilai trigonometri hanya antara 1 dan -1. Hasil yang diperoleh adalah sudut dalam radianMatematika. sin()/ Matematika. cos /Mat. tan() adalah nilai untuk mencari nilai sinus / nilai cosinus atau nilai tangen suatu sudut. Input sudut yang dimasukkan harus dalam radian Pi. Untuk sudut yang dinyatakan dalam derajat harus diubah menjadi radian dengan cara var sudut = 60; Fungsi Daya, Logaritma, dan Root dalam JavascriptMatematika. exp(), digunakan untuk menghitung nilai e^x. Nilai x adalah yang dimaksud dalam tanda kurung. Misalnya, e^6 ditulis Matematika. exp(6). e sendiri, logaritma naturalnya adalah 2,718 Matematika. log(), Penggunaan fungsi ini menghitung nilai logaritma natural. Itulah nilai dari log e x. Pernyataan dalam tanda kurung diperlukan Matematika. pow(), digunakan untuk eksponensial angka. Diperlukan dua pernyataan dalam tanda kurung. Misalkan Anda ingin mencari a pangkat b, maka Matematika akan ditulis. pow(a,b) Matematika. sqrt(), akar kuadrat, yaitu mencari akar kuadrat dari suatu bilangan. Pernyataan dalam tanda kurung diperlukan. Seperti Matematika. akar(a) Perhatikan bahwa metode Matematika memiliki keunggulan dibandingkan operator bitwise yang beroperasi pada angka lebih besar dari 2 31 JavaScript menghitung jenis kelamin angka negatif dan sisa angka non-bilangan bulat di sebelah kanan, mengikuti definisi matematis untuk angka tersebut LANTAI didefinisikan sebagai "bilangan bulat terbesar kurang dari parameter" demikian
SISA didefinisikan sebagai "sisa" dari suatu divisi (aritmetika Euclidean). Ketika dividen bukan bilangan bulat, faktornya biasanya juga bukan bilangan bulat, yaitu tidak ada sisa, tetapi jika faktor tersebut dipaksa menjadi bilangan bulat (dan inilah yang terjadi ketika seseorang mencoba untuk mendapatkan sisa atau modulo a floating nomor poin), jelas, akan ada non-integer "kiri". JavaScript menghitung semuanya seperti yang diharapkan, jadi pemrogram harus berhati-hati untuk mengajukan pertanyaan yang tepat (dan orang harus berhati-hati untuk menjawab apa yang ditanyakan. ) Pertanyaan pertama Yarin BUKAN "berapa banyak pembagian bilangan bulat dari X dengan Y", melainkan ini. "Jumlah bilangan bulat dikali bilangan bulat yang diberikan PERGI KE yang lain. " Untuk bilangan positif, jawabannya sama untuk keduanya, tetapi tidak untuk bilangan negatif, karena pembagian bilangan bulat (pembagi dengan pembagi) akan menjadi -1 lebih kecil dari bilangan (pembagi) "bergeser ke yang lain" (pembagi). Dengan kata lain, LANTAI akan mengembalikan jawaban yang benar untuk membagi bilangan bulat dengan bilangan negatif, tetapi Yarin tidak menanyakan itu gammax menjawab dengan benar, kode ini berfungsi sesuai instruksi Yarin. Di sisi lain, Samuel salah, dia tidak menghitung, saya pikir, atau dia akan melihatnya benar-benar bekerja (juga dia tidak mengatakan apa pembagi dari contoh, tapi saya harap itu 3) Sisa = X% Y = -100% 3 = -1 Masukkan = (X - Sisa) / Y = (-100 - -1) / 3 = -99 / 3 = -33 Omong-omong, saya menguji kode di Firefox 27. 0. 1, berfungsi seperti yang diharapkan dengan angka positif dan negatif, serta nilai non-bilangan bulat, untuk pembagi dan pembagi. Contoh 100,34 / 3,57. Masuk ke = -28, Sisa = -0,3800000000000079 Ya, saya melihat ada masalah dengan akurasi tinggi, tetapi saya tidak punya waktu untuk memeriksanya (saya tidak tahu apakah masalahnya ada pada Firefox, Windows 7, atau pada FPU prosesor saya). Namun, untuk kueri Yarin, yang hanya menyertakan bilangan bulat, kode gammax berfungsi dengan baik Anda dapat menggunakan fungsi parseInt untuk mendapatkan hasil terpotong ParseInt(a/b) Untuk mendapatkan sisanya, gunakan operator mode parseInt memiliki beberapa jebakan dengan string yang harus dihindari menggunakan parameter radix basis 10 ParseInt("09", 10) Dalam beberapa kasus, representasi string dari angka bisa dalam notasi ilmiah, dalam hal ini parseInt akan menghasilkan hasil yang salah ParseInt(100000000000000000000000000000000, 10) // 1e+32 Panggilan ini akan mengembalikan 1 Menghitung jumlah halaman dapat dilakukan dalam satu langkah. Matematika. langit-langit (x/y) Jika Anda hanya membagi dengan pangkat dua, Anda dapat menggunakan operator bitwise Ekspor fungsi bagibagiBy2(num) ( return ; ) ekspor fungsi bagibagi4(num) ( return ; ) ekspor fungsi bagibagiBy8(num) ( return ; ) (Yang pertama adalah yang spesifik, yang kedua adalah yang lainnya) Ini akan selalu terpotong menuju nol. Tidak yakin apakah sudah terlambat, tapi ini tertulis Fungsi intdiv(pembagi, pembagi) ( pembagi = pembagi - pembagi % 1; if (pembagi == 0) throw new Error("pembagi dengan nol"); dividend = pembagi - pembagi % 1; var rem = pembagi % pembagi; return (sisa. rem, hasil bagi. (dividen - rem) / pembagi ); Saya bukan ahli operator bitwise, tapi inilah cara lain untuk mendapatkan bilangan bulat Varnum = ~~(a / b); Ini akan bekerja dengan baik untuk angka negatif juga, sementara Matematika. floor() akan berputar ke arah yang salah Ini juga tampaknya benar Varnum = (a/b) >> 0; Matematika. floor(operation) mengembalikan nilai operasi yang dibulatkan Contoh 1 soal Varx = 5; . lantai(x + y); Menghibur Contoh 2 soal Varx = 14; . lantai(x%y); Menghibur Untuk beberapa angka y dan beberapa pembagi x, hitung hasil bagi dan sisa (sisa) sebagai Hasil untuk var = Matematika. lantai (y/x); Sangat sering, perhitungan dalam JavaScript tidak memberikan hasil yang kita inginkan. Tentu saja, kita dapat melakukan apa saja dengan angka - membulatkan ke atas atau ke bawah, menyesuaikan rentang, memotong angka yang tidak perlu ke angka desimal tertentu, semuanya tergantung pada apa yang ingin Anda lakukan dengan angka-angka ini di masa mendatangMengapa pembulatan diperlukan?Salah satu aspek aneh dari JavaScript adalah tidak menyimpan bilangan bulat, kami bekerja langsung dengan angka floating point. Ini, dikombinasikan dengan fakta bahwa banyak nilai pecahan tidak dapat dinyatakan dengan jumlah desimal yang terbatas, dalam JavaScript kita bisa mendapatkan hasil seperti ini0. 1 * 0. 2; . 0200000000000000004 0. 3 - 0. 1 > 0. 199999999999999998 Pembulatan angka memiliki kegunaan praktis, kita dapat memanipulasi angka dalam rentang tertentu, misalnya kita ingin membulatkan nilai ke bilangan bulat terdekat daripada bekerja hanya dengan bagian desimal Pembulatan desimalUntuk memangkas angka desimal, gunakan metode toFixed atau toPrecision. Keduanya mengambil satu argumen, yang menentukan, masing-masing, berapa banyak digit signifikan (yaitu jumlah digit yang digunakan dalam angka) atau tempat desimal (angka setelah titik desimal) yang harus disertakan hasilnya
Baik metode toFixed() dan toPrecision() mengembalikan representasi string dari hasil, bukan angka. Ini berarti bahwa saat menjumlahkan nilai yang dibulatkan dengan randNum , string akan digabungkan, bukan angka yang ditambahkan Misalkan randNum = 6,25; . toFixed(); . log(bilangan+bulat); . 256" Misalkan randNum = 6,25; . keTetap(1)); . 3 Metode toFixed() dan toPrecision() berguna, karena tidak hanya dapat memotong bagian pecahan, tetapi juga mengisi tempat desimal, yang nyaman saat bekerja dengan mata uang Misalkan wholeNum = 1 biarkan dollarCents = wholeNum. keTetap(2); . log(sen dolar); . 00" Misalkan bilangan = 123. 435 nomor. toPrecision(2); . 2e+2" Cara Menghindari Kesalahan Pembulatan dengan DesimalDalam beberapa kasus, toFixed dan toPrecision akan membulatkan nilai 5 ke bawah dan ke atasBiarkan numTest = 1.005; . keTetap(2); . 00" fungsi rotate(nilai, desimal) ( return Number(Math. bulat(nilai+"e"+desimal)+"e-"+desimal); Ronde 1. 005,2); . 01 Pembulatan epsilon mesinMetode alternatif untuk membulatkan angka desimal diperkenalkan di ES6. Pembulatan epsilon mesin memberikan margin kesalahan yang wajar saat membandingkan dua angka floating point. Tanpa pembulatan, perbandingan dapat menghasilkan hasil yang serupa dengan berikut ini0,1 + 0,2 === 0,3 > salah Fungsi epsEqu(x, y) ( mengembalikan Math. abs(x - y)< Angka. EPSILON * Matematika. maks(Matematika. abs(x), Matematika. abs(y)); EpsEqu(0. 1 + 0. 2, 0. 3) > benar Kliping pecahanSemua metode yang disajikan di atas dapat dibulatkan menjadi angka desimal. Untuk memotong angka menjadi dua tempat desimal, Anda harus mengalikannya dengan 100 terlebih dahulu, lalu membagi hasilnya dengan 100Fungsi terpotong(angka) ( kembali Math. terpotong(angka * 100) / 100; . 1416) > 3. 14 Fungsi terpotong(num, decimalPlaces) ( biarkan numPowerConverter = Math. pow(10, Tempat desimal); Misalkan randInt = 35. 874993; Pembulatan ke bilangan terdekatUntuk membulatkan angka desimal ke atas atau ke bawah ke angka terdekat, tergantung angka terdekat kita, gunakan Matematika. bulat()Matematika. bulat (4. 3) > 4 Matematika. bulat (4. 5) > 5 Pembulatan ke bawah ke bilangan bulat terdekatJika Anda ingin selalu membulatkan ke bawah, gunakan Matematika. lantaiMatematika. lantai (42. 23); . lantai (36. 93); Matematika. lantai (-2. 5); Matematika. terpotong(-41. 43); Pembulatan ke bilangan bulat terdekatSebaliknya, jika Anda harus selalu membulatkan, gunakan Matematika. langit-langit. Sekali lagi, ingat lift tanpa batas. Matematika. ceil akan selalu "naik", apakah angkanya negatif atau tidakMatematika. langit-langit (42. 23); . langit-langit (36. 93); . langit-langit (-36. 93); Bulatkan ke atas/bawah sesuai kebutuhanJika kita ingin membulatkan ke kelipatan 5 terdekat, cara termudah adalah membuat fungsi yang membagi angka dengan 5, membulatkannya, lalu mengalikannya dengan angka yang samaFungsi roundTo5(num) ( kembali Math. bulat(angka/5)*5; Putaran5(11); Fungsi roundToMultiple(num, multiple) ( mengembalikan Math. bulat(bil/kelipatan)*kelipatan; Misalkan bilangan awal = 11; Nomor tetap dalam jangkauanAda banyak kasus dimana kita ingin mendapatkan nilai x yang berada di dalam range. Misalnya, kita mungkin menginginkan nilai dari 1 sampai 100, tetapi kita berakhir dengan nilai 123. Untuk memperbaikinya, kita dapat menggunakan min (mengembalikan kelompok angka terkecil) dan maks (mengembalikan kelompok angka terbesar). Dalam contoh kita, rentangnya adalah dari 1 hingga 100Biarkan lowBound = 1; . maks(Batas Rendah, Matematika. min(numInput, HighBound)); Nomor. prototipe. clamp = function(min, max) ( return Math. berarti (Matematika. maks(ini, min), maks); NumInput. penjepit (Batas rendah, Batas tinggi); Pembulatan GaussPembulatan Gaussian, juga dikenal sebagai pembulatan bankir, adalah pembulatan untuk kasus ini ke bilangan genap terdekat. Metode pembulatan ini berfungsi tanpa kesalahan statistik. Solusi terbaik disarankan oleh Tim DownFungsi gaussRound(num, Tempat desimal) (misalkan d = Tempat desimal. 0, m = Matematika. pow(10, d), n = +(d ? num * m. nomor). toFixed(8), i = Matematika. lantai (n), f = n - i, e = 1e-8, r = (f > 0,5 - e && f< 0. 5 + e) ? . saya + 1). Matematika. putaran (n); . R; GaussRound(2. 5) > 2 gaussRound(3. 5) > 4 gaussRound(2. 57,1) > 2. 6 Karena JavaScript sering digunakan untuk membuat transformasi posisi untuk elemen HTML, Anda mungkin bertanya-tanya apa yang terjadi jika kita membuat nilai desimal untuk elemen kita #kotak ( lebar. 63. 667731993px; PenyortiranSangat sering kita perlu mengurutkan beberapa elemen, misalnya, kita memiliki larik catatan permainan, sementara itu harus diatur dalam urutan level pemain. Sayangnya, metode sort() standar memiliki beberapa keterbatasan yang mengejutkan. itu bekerja dengan baik dengan kata-kata bahasa Inggris yang umum, tetapi dengan cepat rusak ketika menemukan angka, karakter unik, atau kata-kata kapitalUrutkan berdasarkan abjadTampaknya mengurutkan array menurut abjad seharusnya menjadi tugas yang paling sederhanabiarkan buah = ["butternut squash", "apricot", "melon"]; biarkan buah = ["butternut squash", "apricot", "Cantalope"]; Untuk mengurutkan array yang mungkin berisi campuran huruf pertama, kita perlu mengubah sementara semua elemen menjadi huruf kecil, atau menentukan tata urutan kita sendiri menggunakan metode localeCompare() dengan beberapa argumen. Biasanya, untuk kasus seperti itu, lebih baik segera membuat fungsi untuk penggunaan ganda Fungsi alphaSort(arr) ( arr. sortir(fungsi (a, b) ( mengembalikan a. localeCompare(b, "en", ("sensitivitas". "basis")); Fungsi alphaSort(arr) ( arr. sortir(fungsi (a, b) ( mengembalikan b. localeCompare(a, "en", ("sensitivitas". "basis")); Fungsi caseSort(arr) ( arr. sortir(fungsi (a, b) ( mengembalikan a. ke Huruf Kecil(). perbandingan lokal(b. toLowerCase()); Urutkan secara numerikSemua ini tidak berlaku untuk contoh yang kita bicarakan di atas tentang catatan rekor permainan. Dengan beberapa larik numerik, pengurutan berfungsi dengan baik, tetapi pada titik tertentu hasilnya tidak dapat diprediksiBiarkan skor tinggi = ; Biarkan skor tinggi = ; . sort(fungsi(a,b) ( kembali a - b; )); Mengurutkan struktur mirip JSONDan terakhir, jika kita memiliki struktur data seperti JSON yang direpresentasikan sebagai larik rekaman gameBiarkan skor = [( "nama". "Daniel", "skor". 21768 ), ( "nama". "Michael", "skor". 33579 ), ( "nama". "Alison", "skor". 38395 )]); Skor. urutkan((a, b) => b. skor - a. skor)); Skor. sortir(fungsi(a, b) ( mengembalikan a. skor - b. skor )); Bekerja dengan Fungsi DayaEksponen adalah operasi yang awalnya didefinisikan sebagai hasil perkalian bilangan asli dengan dirinya sendiri, akar kuadrat dari a adalah bilangan yang menghasilkan a jika dikuadratkan. Fungsi tersebut dapat kita gunakan secara terus-menerus dalam kehidupan sehari-hari dalam pelajaran matematika, termasuk saat menghitung luas, volume, atau bahkan dalam pemodelan fisikDalam JavaScript, fungsi eksponensial direpresentasikan sebagai Matematika. pow(), dalam standar ES7 baru, operator eksponensial baru diperkenalkan - " * * " EksponenUntuk menaikkan angka ke pangkat n, gunakan fungsi Math. pow(), di mana argumen pertama adalah angka yang akan dimunculkan, dan argumen kedua adalah eksponenMatematika. pow(3,2) > 9 Matematika. pow(5,3); ECMAScript 7 adalah versi berikutnya dari JavaScript, pada prinsipnya, kita dapat menggunakan operator eksponensial baru yang diusulkan - * *, bentuk penulisan ini dapat lebih deskriptif 3 ** 2 > 9 Fungsi daya dapat berguna dalam berbagai situasi. Contoh sederhana, menghitung jumlah detik dalam satu jam. Matematika. pow(60,2) Matematika. sqrt() dan Matematika. cbrt() adalah kebalikan dari Matematika. pow(). Seperti yang kita ingat, akar kuadrat dari a adalah bilangan yang menghasilkan a jika dikuadratkanMatematika. sqrt(9) > 3 Matematika. cbrt(125) > 5 ContohTentu saja, kita juga bisa menggunakan nilai bukan bilangan bulat di salah satu fungsi tersebutMatematika. pow(1,25, 2); . 5625 Matematika. cbrt (56. 57) > 3. 8387991760286138 Math. pow(-5,2) > 25 Matematika. pow(10,-2) > 0,01 Math. sqrt(-9) > NaN Anda dapat menggunakan nilai pecahan di Math. pow() untuk menemukan akar kuadrat dan pangkat tiga dari angka. Akar kuadrat menggunakan eksponen 0,5 Math. pow(5, 0. 5); // = Math. sqrt(5) = 5 ** (1/2) > 2. 23606797749979 Math. pow(2. 23606797749979. 2) > 5. 000000000000001 Beberapa, entah kenapa dalam JavaScript, mengacaukan fungsi Math. pow() dengan Math. exp() , yang merupakan fungsi eksponensial untuk angka secara umum. Catatan. dalam bahasa Inggris, "eksponen" diterjemahkan sebagai "eksponen", jadi ini lebih relevan untuk penutur bahasa Inggris, meskipun ada nama alternatif untuk eksponen, seperti indeks, pangkat Konstanta matematikaBekerja dengan matematika dalam JavaScript menjadi lebih mudah dengan sejumlah konstanta bawaan. Konstanta ini adalah properti dari objek Math. Perlu dicatat bahwa konstanta ditulis dalam huruf besar, bukan notasi CamelCaseMath. abs, parseInt, parseFloatBekerja dengan angka dalam JavaScript bisa jauh lebih rumit daripada yang Anda pikirkan. Nilai yang diperoleh tidak selalu berada dalam rentang yang diharapkan, terkadang hasilnya mungkin tidak seperti yang kita harapkan sama sekalimatematika. ab()Metode Math. abs() mengembalikan nilai absolut suatu bilangan, yang mengingatkan kita pada fungsi modulo matematika analogBiarkan newVal = -57. 64; Math. abs(newVal); > 57. 64 matematika. abs(0); > -0 parseInt()Kita tahu bahwa JavaScript memahami bahwa "15" adalah string, bukan angka, dan, misalnya, saat mengurai properti CSS menggunakan JavaScript, atau mendapatkan beberapa nilai dari array yang tidak disiapkan, hasil kita bisa menjadi tidak terduga. Kita bisa mendapatkan string yang direpresentasikan sebagai "17px" sebagai input, dan ini tidak biasa bagi kita. Pertanyaannya adalah bagaimana mengubah string ini menjadi nilai aktual dan menggunakannya dalam perhitungan lebih lanjutSintaks. parseInt(string, radix); Fungsi parseInt mengonversi argumen pertama yang diteruskan ke tipe string, menafsirkannya, dan mengembalikan nilai integer atau NaN. Hasilnya (jika bukan NaN) adalah bilangan bulat dan merupakan argumen (string) pertama yang diperlakukan sebagai angka dalam sistem angka yang ditentukan (radix). Misalnya, basis 10 menunjukkan konversi dari desimal, 8 dari oktal, 16 dari heksadesimal, dan seterusnya. Jika basis lebih besar dari 10, maka huruf digunakan untuk menunjukkan angka yang lebih besar dari 9. Misalnya, bilangan heksadesimal (basis 16) menggunakan huruf A sampai F Pertimbangkan contoh bekerja dengan properti CSS, di mana, secara relatif, kita bisa mendapatkan nilai berikut Biarkan elem = document. body; biarkan centerPoint = window. getComputedStyle(elem). transformOrigin; . 19px" Biarkan pusat = centerPoint. split(" "); > ["454px", "2087. 19px"] Biarkan centerX = parseInt(pusat, 10); > 454 biarkan centerY = parseInt(centers, 10); > 2087 parseFloat()Dari contoh di atas, Anda mungkin telah memperhatikan bahwa parseInt membuang bagian pecahan. Dalam kasus kami, parseFloat dapat bekerja dengan angka floating point. Sekali lagi, ini dapat berguna dalam penguraian CSS dan tugas-tugas lainnya, terutama ketika berhadapan dengan persentase floating pointSintaks. parseFloat(string) LetFP = "33,33333%"; console. log(parseFloat(FP)); > 33. 33333 Kami memahami bahwa parseInt() dan parseFloat() adalah fungsi yang sangat berguna, penting untuk diingat bahwa ada beberapa kesalahan di sini, jadi Anda perlu memeriksa rentang nilai yang diharapkan dan akhirnya menguraikan hasilnya untuk memastikan bahwa nilai diperoleh sudah benar Seringkali perhitungan memberikan hasil yang tidak sesuai dengan rentang yang diinginkan. Akibatnya, perlu untuk Pembulatan JavaScript sampai nilai tertentu Mengapa angka bulat?JavaScript tidak menyimpan bilangan bulat karena nilainya direpresentasikan sebagai angka floating point. Banyak pecahan tidak dapat diwakili oleh angka dengan jumlah tempat desimal tertentu yang terbatas, sehingga JavaScript dapat menghasilkan hasil seperti berikut 0. 1 * 0. 2; > 0. 020000000000000004 Dalam praktiknya, ini tidak masalah, karena kita berbicara tentang kesalahan 2 triliun. Tapi ini bisa mempengaruhi hasil saat bekerja dengan angka yang mewakili nilai mata uang, persentase, atau ukuran file. Oleh karena itu, Anda perlu melakukan atau hingga tempat desimal tertentu Pembulatan desimalUntuk "memotong" angka desimal, gunakan metode toFixed() atau toPrecision(). Mereka berdua mengambil satu argumen, yang menentukan jumlah tempat signifikan dan desimal untuk disertakan dalam hasil
var randNum = 6,25; randNum. toFixed(); > "6" Math. PI. toPrecision(1); > "3" var randNum = 87. 335; randNum. toFixed(2); > "87,33" var randNum = 87. 337; randNum. toPrecision(3); > "87. 3" Catatan Baik toFixed() dan toPrecision mengembalikan representasi string bulat dari hasil, bukan angka. Ini berarti bahwa menambahkan pembulatan ke randNum akan menghasilkan rangkaian string daripada satu angka console. log(randNum + bulat); > "6. 256" Jika Anda ingin JavaScript dibulatkan ke ratusan, gunakan parseFloat() var randNum = 6,25; var dibulatkan = parseFloat(randNum. toFixed(1)); log konsol (dibulatkan); > 6. 3 toFixed() dan toPrecision() juga merupakan metode yang berguna untuk memotong sejumlah besar tempat desimal. Ini berguna saat bekerja dengan angka yang mewakili satuan moneter var wholeNum = 1 var dollarCents = wholeNum. keTetap(2); . log(sen dolar); . 00" Perhatikan bahwa jika angka memiliki lebih banyak digit daripada parameter presisi, toPrecision akan mengembalikan hasilnya dalam format ilmiah var bil = 123. 435 nomor. toPrecision(2); . 2e+2" Cara Menghindari Kesalahan Saat Membulatkan DesimalDalam beberapa kasus, toFixed dan toPrecision melakukan rotasi JavaScript 5 ke bawah, dan tidak lebih var numTest = 1,005; numTest. keTetap(2); Hasil dari contoh di atas seharusnya 1,01, bukan 1. Jika Anda ingin menghindari kesalahan ini, saya sarankan menggunakan bilangan eksponensial fungsi bulat(nilai, desimal) ( mengembalikan Angka(Matematika. bulat(nilai+"e"+desimal)+"e-"+desimal); Aplikasi bulat(1. 005,2); > 1. 01 Jika Anda membutuhkan solusi yang lebih kuat daripada pembulatan, tersedia di MDN Pembulatan dengan EpsilonMetode alternatif Pembulatan JavaScript ke persepuluh diperkenalkan di ES6 ( juga dikenal sebagai JavaScript 2015). « Mesin epsilon' memberikan margin kesalahan yang wajar saat membandingkan dua angka floating point. Tanpa pembulatan, perbandingan dapat menghasilkan hasil yang serupa dengan berikut 0,1 + 0,2 === 0,3 > salah Math. EPSILON dapat digunakan dalam suatu fungsi untuk mendapatkan perbandingan yang valid fungsi epsEqu(x, y) ( kembalikan Math. abs(x - y)< Number. EPSILON * Math. max(Math. abs(x), Math. abs(y)); } Fungsi membutuhkan dua argumen. satu berisi perhitungan, yang kedua adalah hasil yang diharapkan (dibulatkan). Ini mengembalikan perbandingan dua parameter ini epsEqu(0. 1 + 0. 2, 0. 3) > benar Semua browser modern mendukung fungsi matematika ES6. Tetapi jika Anda perlu memberikan dukungan di browser lama, maka Anda perlu menggunakan polyfill Pemotongan desimalSemua metode yang disajikan sebelumnya tampil Pembulatan JavaScript ke persepuluh. Untuk memotong angka positif menjadi dua tempat desimal, kalikan dengan 100 , potong lagi, lalu bagi hasilnya dengan 100 function truncated(num) ( return Math. trunc(num * 100) / 100; ) truncated(3. 1416) > 3. 14 Jika Anda membutuhkan sesuatu yang lebih fleksibel, Anda dapat menggunakan operator bitwise function truncated(num, decimalPlaces) ( var numPowerConverter = Math. pow(10, decimalPlaces); return ~~(num * numPowerConverter)/numPowerConverter; ) Penggunaan var randInt = 35. 874993; terpotong(randInt,3); > 35,874 Pembulatan ke bilangan terdekatUntuk melaksanakan JavaScript bulat ke bilangan bulat, Math. round() digunakan Matematika. bulat (4. 3) > 4 Matematika. bulat (4. 5) > 5 Perhatikan bahwa " setengah nilai“, seperti . 5 , dibulatkan ke atas Pembulatan ke bawah ke bilangan bulat terdekatJika Anda ingin membulatkan ke bawah, gunakan metode Math. floor() Matematika. lantai (42. 23); . lantai (36. 93); Pembulatan "bawah" memiliki satu arah untuk semua angka, termasuk angka negatif. Ini dapat dibayangkan sebagai gedung pencakar langit dengan jumlah lantai yang tidak terbatas, termasuk di bawah tingkat pondasi ( mewakili bilangan negatif). Jika Anda berada di lift antara lantai bawah tanah 2 dan 3 ( yang sesuai dengan nilai -2,5), Math. floor akan membawa Anda ke lantai -3 Matematika. lantai (-2. 5); Jika Anda perlu menghindari ini, gunakan pembulatan Matematika JavaScript dengan Math. trunc() , yang didukung di semua browser modern (kecuali IE/Tepi) Matematika. terpotong(-41. 43); MDN juga menyediakan Polyfill 3-baris untuk memberikan dukungan untuk Math. trunc di browser lama dan IE/Edge Pembulatan ke bilangan bulat terdekatJika Anda ingin membulatkan angka desimal, gunakan Math. ceil . Anda juga dapat menganggap metode ini sebagai elevator tak terbatas. Math. ceil selalu membawa Anda "naik", terlepas dari apakah angkanya negatif atau positif Math. ceil(42. 23); > 43 Math. ceil(36. 93); > 37 Math. ceil(-36. 93); -36 Pembulatan ke kelipatan terdekatJika Anda ingin membulatkan nilai ke kelipatan terdekat dari 5 , buat fungsi yang membagi angka dengan 5 , bulatkan ke atas, lalu kalikan hasilnya dengan nilai yang sama function roundTo5(num) ( kembalikan Math. round(num/5)*5; ) Penggunaan putaranKe5(11); > 10 Jika Anda perlu melakukan pembulatan JavaScript ke dua tempat desimal, Anda dapat meneruskan benih dan multiplisitas ke fungsi function roundToMultiple(num, multiple) ( return Math. round(num/multiple)*multiple; ) Untuk menggunakan fungsi tersebut, sertakan nomor yang akan dibulatkan dan multiplisitas dalam panggilannya var bilangan awal = 11; Untuk membulatkan nilai hanya ke atas atau ke bawah, ganti fungsi round dengan ceil atau floor Mengikat ke rentangTerkadang Anda perlu mendapatkan nilai x, yang harus berada dalam kisaran tertentu. Misalnya, kami menginginkan nilai antara 1 dan 100 , tetapi kami mendapatkan nilai 123 . Untuk memperbaikinya, Anda dapat menggunakan min() ( mengembalikan yang terkecil dari angka) dan maks( mengembalikan jumlah maksimum yang diizinkan) Penggunaan var batas rendah = 1; varhighBound = 100; masukan varnum = 123; var dijepit = Math. max(lowBound, Math. min(numInput, highBound)); log konsol (dijepit); > 100; Anda dapat membuat fungsi atau ekstensi dari kelas Number Pada artikel ini, kita akan melihat lebih dekat pada angka, operator matematika, cara mengubah angka menjadi string dan sebaliknya, serta banyak poin penting lainnya fungsi terbatasFungsi isFinite memungkinkan Anda untuk memeriksa apakah suatu argumen adalah bilangan berhingga Fungsi ini mengembalikan false sebagai respons jika argumennya adalah Infinity , -Infinity , NaN , atau akan dilemparkan ke salah satu dari nilai numerik khusus ini. Jika tidak, fungsi ini akan mengembalikan true Terbatas(73); // true isFinite(-1/0); // false isFinite(Tak terhingga); // false isFinite(NaN); // false isFinite("Teks"); // Salah Selain fungsi global isFinite, JavaScript juga memiliki metode Number. isFinite. Itu, tidak seperti isFinite, tidak memaksa argumen untuk dikonversi ke angka IsFinite("73"); // true Number. isFinite("73"); // Salah fungsi isNaNFungsi isNaN adalah untuk menentukan apakah suatu argumen adalah angka atau dapat dikonversi menjadi satu. Jika demikian, maka fungsi isNaN mengembalikan false. Kalau tidak, itu mengembalikan true IsNaN(NaN); //true isNaN("25px"); //benar, karena 20px bukan angka isNaN(25. 5); //false isNaN("25. 5"); //salah isNaN(" "); //salah, karena spasi atau beberapa spasi diubah menjadi 0 isNaN(null); //salah, karena nilai null dikonversi menjadi 0 isNaN(true); //salah, karena true diubah menjadi 1 isNaN(false); //salah, karena nilai palsu diubah menjadi 0 Jika tindakan ini perlu dilakukan tanpa pemeran tipe, gunakan metode Number. isNaN. Metode ini telah diperkenalkan ke dalam bahasa sejak ECMAScript 6 Bagaimana cara mengonversi string menjadi angka secara eksplisit?Anda dapat secara eksplisit melemparkan string ke nomor menggunakan metode berikut 1. Gunakan operator unary + Yang akan ditempatkan sebelum nilai +"7. 35"; // 7. 35 +"teks"; // NaN Metode ini mengabaikan spasi di awal dan akhir baris, serta \n (umpan baris) +"7. 35"; //7. 35 +"7. 35\n"; ///7. 35 Saat menggunakan metode ini, Anda perlu memperhatikan fakta bahwa string kosong atau string yang terdiri dari spasi dan \n diubah menjadi angka 0. Selain itu, juga mengubah tipe data null dan nilai boolean menjadi a nomor Batal; //0 +benar; // +salah; //0 +" "; //0 2. Fungsi parseInt . Fungsi ini dirancang untuk mengonversi argumen ke bilangan bulat. Berbeda dengan menggunakan operator unary +, metode ini memungkinkan Anda untuk mengubah string menjadi angka, di mana tidak semua karakter adalah numerik. Itu mulai mengubah string, mulai dari karakter pertama. Dan segera setelah menemukan karakter yang bukan karakter numerik, fungsi ini berhenti bekerja dan mengembalikan nomor yang dihasilkan ParseInt("18px"); //18 parseInt("33. 3%"); //33 Fungsi ini dapat bekerja dengan sistem bilangan yang berbeda (biner, oktal, desimal, heksadesimal). Indikasi basis sistem bilangan dilakukan melalui 2 argumen ParseInt("18px", 10); //18 parseInt("33. 3%", 10); //33 parseInt("101",2); ///5 parseInt("B5",16); //181 Selain fungsi parseInt, JavaScript memiliki metode Number. parseInt. Metode ini tidak berbeda dengan fungsi parseInt dan diperkenalkan ke JavaScript dengan spesifikasi ECMASCRIPT 2015(6) 3. Fungsi parseFloat . Fungsi parseFloat mirip dengan parseInt , kecuali bahwa fungsi ini memungkinkan Anda mengonversi argumen menjadi bilangan pecahan ParseFloat("33. 3%"); ///33. 3 Selain itu, fungsi parseFloat, tidak seperti parseInt, tidak memiliki 2 argumen, dan karena itu selalu mencoba memperlakukan string sebagai angka dalam notasi desimal ParseFloat("3. 14"); parseFloat("314e-2"); parseFloat("0. 0314E+2"); Selain fungsi parseFloat, JavaScript memiliki metode Number. parseFloat. Metode ini tidak berbeda dengan fungsi parseFloat dan diperkenalkan ke JavaScript dengan spesifikasi ECMASCRIPT 2015(6) Mengonversi angka menjadi stringAnda dapat mengonversi angka menjadi string menggunakan metode toString (12. 8). toString(); . 8" Metode toString juga memungkinkan Anda untuk menentukan basis sistem angka, mengingat Anda harus secara eksplisit memasukkan angka ke dalam string (255). toString(16); Bagaimana cara memeriksa apakah suatu variabel adalah angka?Anda dapat menentukan apakah nilai suatu variabel adalah angka menggunakan salah satu metode berikut 1. Menggunakan fungsi isNaN dan isFinite // myVar adalah variabel jika (. isNaN(parseFloat(myVar)) && isFinite(parseFloat(myVar))) ( //myVar adalah angka atau dapat dimasukkan ke dalamnya ); Sebagai fungsi // fungsi function isNumeric(nilai) ( return. isNaN(parseFloat(nilai)) && isFinite(parseFloat(nilai)); . log(isNumeric(myVar)); Metode ini memungkinkan Anda untuk menentukan apakah nilai yang ditentukan adalah angka atau dapat dikonversi menjadi angka. Varian ini tidak menghitung string kosong, string spasi, null , Infinity , -Infinity , true dan false sebagai angka 2. Menggunakan tipe operator dan fungsi isFinite, isNaN // fungsi yang memeriksa apakah nilainya adalah angka function isNumber(value) ( return typeof value === ". LANG. angka" && isFinite(nilai) &&. isNaN(nilai); . } Fungsi ini menentukan apakah nilai yang ditentukan bertipe Number dan bukan salah satu dari nilai khusus Infinity, -Infinity, dan NaN. Jika demikian, maka fungsi ini mengembalikan nilai true 3. Menggunakan metode ECMAScript 6 Number. adalahInteger(nilai). Metode ini memungkinkan Anda untuk menentukan apakah nilai yang ditentukan adalah bilangan bulat Nomor. isInteger("20"); //salah, karena metode ini tidak menerjemahkan string menjadi angka Number. isInteger(20); //benar, karena nilai yang diberikan adalah bilangan Bilangan genap dan ganjilAnda dapat memeriksa apakah suatu bilangan genap atau ganjil menggunakan fungsi berikut // Fungsi untuk memeriksa apakah suatu bilangan genap fungsi isEven(n) ( return n % 2 == 0; ) // Fungsi untuk memeriksa apakah suatu bilangan ganjil fungsi isOdd(n) ( return Math. abs(n % 2) == 1; ) Tetapi sebelum melakukan pemeriksaan seperti itu, diinginkan untuk memastikan bahwa nilai yang ditentukan adalah angka nilai=20; if (Number. isInteger(value)) ( if (isEven(value)) ( console. log("Number " + value. toString() + " - even"); ) ) Bilangan Prima dalam JavascriptPerhatikan contoh di mana kami menampilkan bilangan prima dari 2 hingga 100 menggunakan Javascript // Fungsi yang memeriksa apakah suatu bilangan adalah fungsi prima isPrime(value) ( if (isNaN(value) . . isFinite(value) . value%1 . value< 2) return false; var max=Math. floor(Math. sqrt(value)); for (var i = 2; i< = max; i++) { if (value%i==0) { return false; } } return true; } // создать массив, который будет содержать простые числа от 2 до 100 var primaryNumber = ; for (var i = 2; i <= 100; i++) { if(isPrime(i)) primaryNumber. push(i); } // вывести в консоль простые числа от 2 до 100 console. log(primaryNumber); Pembulatan Angka dalam JavascriptAda berbagai cara untuk membulatkan bilangan pecahan ke nilai integer dalam JavaScript 1. Menggunakan metode Math. floor , Math. ceil dan Math. round yang dirancang khusus untuk ini. Metode Math. floor membulatkan angka pecahan ke bilangan bulat terdekat, mis. hanya membuang bagian pecahan. Math. ceil membulatkan angka pecahan ke bilangan bulat terdekat. Math. round membulatkan angka ke atas atau ke bawah tergantung pada nilai bagian pecahan. Jika bagian pecahan lebih besar dari atau sama dengan 0,5, maka ke atas, sebaliknya gulir ke bawah Console. log(Math. floor(7. 9)); // console. log(Math. ceil(7. 2)); //8 console. log(Math. round(7. 5)); //delapan 2. Menggunakan metode toFixed (presisi). Metode ini membulatkan bagian pecahan dari angka ke presisi yang ditentukan. Hasil pembulatan dikembalikan sebagai string Console. log(7. 987. toFixed(2)); //"7,99" Jika tidak ada cukup tempat desimal untuk membentuk akurasi angka yang ditentukan, maka angka tersebut diisi dengan nol Console. log(7. 987. toFixed(5)); //"7. 98700" 3. Melalui metode toPrecision(presisi). Metode ini mewakili angka dengan presisi yang ditentukan. Pada saat yang sama, ia tidak hanya dapat membulatkan pecahan, tetapi juga seluruh bagian angka. Angka yang dihasilkan dapat direpresentasikan dengan metode ini tergantung pada hasil dalam titik tetap atau dalam bentuk eksponensial Console. log((1001). toPrecision(2)); //"1. 0e+3" console. log((1001). toPrecision(5)); //"1001. 0" console. log((12. 4). toPrecision(1)); //"1e+1" console. log((12. 4). toPrecision(2)); //"12" console. log((12. 4). toPrecision(3)); //"12. 4" console. log((12. 4). toPrecision(5)); //"12. 400" 4. Menggunakan operator NOT atau OR logis //melalui negasi logika ganda console. log(~~7. 9); // dengan menggunakan logika OR dengan nol. console. log(7. 9^0); ///7 Bilangan bulat dan bagian pecahan dari suatu bilanganAnda bisa mendapatkan bagian bilangan bulat dari sebuah angka menggunakan metode Math. floor() dan parseInt() Console. log(Math. floor(7. 21)); // 7 console. log(parseInt(7. 21)); // 7 Anda bisa mendapatkan bagian pecahan dari suatu angka menggunakan operator persentase (%). Operator ini mengembalikan sisa yang akan diperoleh dari membagi angka pertama dengan yang kedua. Dalam hal ini, 1 harus digunakan sebagai angka ke-2 Console. log(7. 21%1); . 209999999999999996 // akurat hingga 2 tempat desimal konsol. log((7. 21%1). toFixed(2)); // "0. 21" Selain itu, bagian pecahan juga dapat diperoleh dengan menggunakan perhitungan angka var = 7. 21; . lantai (Matematika. abs(number)); console. log(bilangan pecahan); // 0. 2099999999999996 Apakah bilangan tersebut habis dibagi?Anda dapat menentukan apakah suatu angka habis dibagi menggunakan operator persentase var nomor = 9; . log ("Bilangan " + bilangan + " habis dibagi 3"); ) else ( console. log("Bilangan " + bilangan + " tidak habis dibagi 3"); Pemformatan AngkaDalam JavaScript, metode toLocaleString() memungkinkan Anda memformat keluaran angka sesuai dengan lokal (pengaturan bahasa sistem operasi) Misalnya, mari memformat angka sesuai dengan standar regional yang dipasang di sistem secara default jumlah var = 345,46; . log(nomor. toLocaleString()); Misalnya, mari memformat angka menurut standar regional Rusia (ru) Menghibur. log((108. 1). toLocaleString("ru-RU")); . 1" Metode ini juga dapat digunakan untuk memformat angka sebagai mata uang Menghibur. log((2540. 125). toLocaleString("ru-RU",(style. "mata uang", mata uang. "MENGGOSOK"))); . konsol 13". log((89. 3). toLocaleString("ru-RU",(style. "mata uang", mata uang. "USD"))); . konsol 30". log((2301. 99). toLocaleString("ru-RU",(style. "mata uang", mata uang. "EUR"))); Nyatakan angka sebagai persentase Menghibur. log((0. 45). toLocaleString("ru-RU",(style. "persen"))); Pisahkan angka menjadi digit (gunakan properti Grouping) Menghibur. log((125452. 32). toLocaleString("ru-RU",(useGrouping. BENAR))); Cetak angka dengan jumlah digit yang ditentukan (2) setelah titik desimal Menghibur. log((1240. 4564). toLocaleString("ru-RU",(minimumFractionDigits. 2, Digit Pecahan maksimum. 2))); . 46" Perbandingan AngkaOperator berikut digunakan untuk membandingkan angka dalam JavaScript. == (sama dengan),. = (tidak sama dengan), > (lebih besar dari),< (меньше), >= (lebih besar dari atau sama dengan),<= (меньше или равно) Sebagai contoh, mari kita bandingkan dua angka Menghibur. log(2>3); . log(5>=3); Saat membandingkan angka dengan bagian pecahan, perlu diperhitungkan kesalahan yang mungkin terjadi selama perhitungan ini Misalnya, dalam JavaScript, jumlah angka (0,2 + 0,4) tidak sama dengan 0,6 Menghibur. log((0. 2+0. 4)==0. 6); Kesalahan terjadi karena semua perhitungan dilakukan oleh komputer atau perangkat elektronik lainnya dalam sistem bilangan ke-2. Itu. sebelum melakukan tindakan apa pun, komputer harus terlebih dahulu mengubah angka yang disajikan dalam ekspresi menjadi sistem 2 angka. Namun, tidak ada bilangan desimal pecahan yang dapat direpresentasikan secara akurat dalam sistem bilangan ke-2 Misalnya, angka 0,25 10 diubah menjadi biner dengan tepat 0,125 × 2 = 0,25. 0 0,25 × 2 = 0,5. 0 0,5 × 2 = 1. 1 0,125 10 = 0,001 2 Misalnya angka 0. 2 10 dapat dikonversi ke sistem 2 hanya dengan akurasi tertentu 0,2 × 2 = 0,4. 0 0,4 × 2 = 0,8. 0 0,8 × 2 = 1,6. 1 0,6 × 2 = 1,2. 1 0,2 × 2 = 0,4. 0 0,4 × 2 = 0,8. 0 0,8 × 2 = 1,6. 1 0,6 × 2 = 1,2. 1 0,2 × 2 = 0,4. 0 0,4 × 2 = 0,8. 0 0,8 × 2 = 1,6. 1 0,6 × 2 = 1,2. 1. 0,2 10 = 0,001100110011. 2 Akibatnya, kesalahan ini akan mempengaruhi perhitungan jumlah dua angka dan hasil perbandingannya. Itu. ternyata JavaScript akan melihat entri ini sebagai berikut 0. 60000000000000001==0. 6 Saat menghitung atau menampilkan angka dengan bagian pecahan, Anda harus selalu menentukan presisi yang akan digunakan Misalnya, bandingkan angka hingga 2 tempat desimal menggunakan metode toFixed() dan toPrecision() //metode untukFixed() konsol. log((0. 2+0. 4). toFixed(2)==(0. 6). keTetap(2)); . log((0. 2+0. 4). toPrecision(2)==(0. 6). toPrecision(2)); Operasi matematika dasarJavaScript memiliki operator matematika berikut. + (penjumlahan), - (pengurangan), * (perkalian), / (pembagian), % (sisa pembagian), ++ (nilai bertambah 1), -- (nilai dikurangi 1) 6+3 //9 6-3 //3 6*3 //18 6/3 //2 6%3 //0, mis. 6. 3=2 => 6-3*2 => sisa(0) 5%2 //1, misalnya. 5. 2=2(. 5) => 5-2*2 => istirahat(1) 7. 3%2 //1. 3, mis. 7. 3. 2=3(. 65) => 7. 3-2*3 => istirahat(1. 3) //tanda hasil operasi % sama dengan tanda nilai pertama -9%2. 5 //-1. 5, mis. 9. 2. 5=3(. 6) => 9-2. 5*3 => istirahat (1. 5) -9% -2. 5 //-1. 5, mis. 9. 2. 5=3(. 6) => 9-2. 5*3 => istirahat (1. 5) -2%5 //-2, mis. 2. 5=0(. 4) => 2-5*0 => istirahat(2) x = 3; . log(x); . log(x); . x+=y (x=x+y), x-=y (x=x-y), x*=y (x=x*y), x/= y (x=x/y), x%=y ( x=x%y). x=3; |