Bagaimana saya bisa mengumpulkan angka dalam JavaScript?
math.round()
tidak berfungsi karena membulatkannya ke desimal terdekat.
Saya tidak yakin apakah ada cara yang lebih baik untuk melakukannya selain memecahnya pada titik desimal untuk menjaga bit pertama. Pasti ada...
javascript
math
rounding
Ben Shelock
sumber
sumber
Jawaban:
Menggunakan
Math.floor()
adalah salah satu cara untuk melakukan ini.Informasi lebih lanjut: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
sumber
Putaran menuju infinity negatif -
Math.floor()
Putaran ke nol - biasanya disebut
Truncate()
, tetapi tidak didukung oleh JavaScript - dapat ditiru dengan menggunakanMath.ceil()
angka negatif danMath.floor()
positif.sumber
x | 0
.Math.floor()
akan bekerja, tetapi sangat lambat dibandingkan dengan menggunakanOR
operasi bitwise :EDIT
Math.floor()
adalah tidak lebih lambat dari menggunakan | operator. Terima kasih kepada Jason S karena telah memeriksa pekerjaan saya.Berikut kode yang saya gunakan untuk menguji:
sumber
|
mengkonversi ke integer 32-bit, memotong;Math.floor
putaran ke bawah. jsfiddle.net/minitech/UVG2wAnda dapat mencoba menggunakan fungsi ini jika Anda perlu membulatkan ke tempat desimal tertentu
contoh
sumber
Untuk membulatkan ke arah infinity negatif, gunakan:
Untuk membulatkan ke bawah ke nol (jika angka dapat membulatkan ke bilangan bulat 32-bit antara -2147483648 dan 2147483647), gunakan:
Untuk membulatkan ke bawah ke nol (untuk nomor berapa pun), gunakan:
sumber
Pembulatan
number
ke arah0
dapat dilakukan dengan mengurangi bagian fraksinya yang telah ditandatanganinumber % 1
:Seperti
Math.floor
(putaran menuju-Infinity
) metode ini sangat akurat.Ada perbedaan dalam penanganan
-0
,+Infinity
dan-Infinity
meskipun:sumber
sumber
Sedang mengutak-atik kode elses seseorang hari ini dan menemukan yang berikut ini yang tampaknya bulat juga:
Untuk info lebih lanjut tentang pergeseran kanan Tanda-propagasi (>>) lihat MDN Bitwise Operators
Butuh beberapa saat untuk mencari tahu apa yang dilakukannya: D
Tetapi seperti yang disorot di atas, Math.floor () berfungsi dan terlihat lebih mudah dibaca menurut saya.
sumber
Anda perlu meletakkan -1 untuk membulatkan setengah ke bawah dan setelah itu kalikan dengan -1 seperti contoh di bawah.
sumber
Ini adalah math.floor yang digunakan dalam contoh sederhana. Ini mungkin membantu pengembang baru untuk mendapatkan ide bagaimana menggunakannya dalam suatu fungsi dan apa fungsinya. Semoga ini bisa membantu!
sumber