Cara menghindari pembulatan angka di javascript

Contoh

Cobalah sendiri "

misalkan a = Matematika. ronde 2. 60);
misalkan b = Matematika. ronde 2. 50);
misalkan c = Matematika. ronde 2. 49);
misalkan d = Matematika. ronde 2. 60);
misalkan e = Matematika. ronde 2. 50);
misalkan f = Matematika. ronde 2. 49);

Cobalah sendiri "


Definisi dan Penggunaan

Metode Math.round() membulatkan angka ke bilangan bulat terdekat

2. 49 akan dibulatkan ke bawah (2), dan 2. 5 akan dibulatkan (3)




Sintaksis

Parameter

ParameterDeskripsixDiperlukan
Sebuah angka

Nilai Pengembalian

TypeDescriptionNumberAngka yang dibulatkan ke bilangan bulat terdekat

Dukungan Peramban

Math.round() adalah fitur ECMAScript1 (ES1).

ES1 (JavaScript 1997) didukung penuh di semua browser

ChromeEdgeFirefoxSafariOperaIEYaYaYaYaYa

Jumlah digit yang muncul setelah titik desimal; . Jika argumen ini dihilangkan, maka dianggap sebagai 0

Sebuah string yang mewakili nomor yang diberikan menggunakan notasi fixed-point

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
0

Jika digits lebih kecil dari 0, lebih besar dari 100, atau

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
4

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
5

Jika metode ini dipanggil pada objek yang bukan

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
6

Metode toFixed()_ mengembalikan representasi string dari

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
8 yang tidak menggunakan notasi eksponensial dan memiliki tepat digits digit setelah tempat desimal. Angka dibulatkan jika perlu, dan bagian pecahan diisi dengan nol jika perlu sehingga memiliki panjang yang ditentukan

Jika nilai absolut

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
8 lebih besar atau sama dengan 1021, metode ini menggunakan algoritme yang sama dengan
0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
1 dan mengembalikan string dalam notasi eksponensial. toFixed() mengembalikan
0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
3,
0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
4, atau
0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
5 jika nilai
(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
8 tidak terbatas

Output dari toFixed() mungkin lebih tepat daripada

0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
8 untuk beberapa nilai, karena
0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
8 hanya mencetak angka signifikan yang cukup untuk membedakan angka dari nilai angka yang berdekatan. Misalnya

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'

Namun, memilih presisi digits_ yang terlalu tinggi dapat mengembalikan hasil yang tidak diharapkan, karena bilangan pecahan desimal tidak dapat direpresentasikan secara tepat dalam floating point. Misalnya

0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
_

const numObj = 12345.6789;

numObj.toFixed(); // '12346'; rounding, no fractional part
numObj.toFixed(1); // '12345.7'; it rounds up
numObj.toFixed(6); // '12345.678900'; additional zeros
(1.23e+20).toFixed(2); // '123000000000000000000.00'
(1.23e-10).toFixed(2); // '0.00'
2.34.toFixed(1); // '2.3'
2.35.toFixed(1); // '2.4'; it rounds up
2.55.toFixed(1); // '2.5'
// it rounds down as it can't be represented exactly by a float and the
// closest representable float is lower
2.449999999999999999.toFixed(1); // '2.5'
// it rounds up as it's less than NUMBER.EPSILON away from 2.45.
// This literal actually encodes the same number value as 2.45

(6.02 * 10 ** 23).toFixed(50); // 6.019999999999999e+23; large numbers still use exponential notation

Karena akses anggota memiliki prioritas lebih tinggi daripada minus unary, Anda perlu mengelompokkan ekspresi angka negatif untuk mendapatkan string

Bagaimana cara menghentikan pembulatan angka?

Agar angka tidak ditampilkan sebagai pembulatan, Anda dapat menambah jumlah tempat desimal untuk angka tersebut , atau Anda dapat menambah kolom .

Bagaimana cara mendapatkan bilangan bulat tanpa pembulatan di JavaScript?

Fungsi yang Anda inginkan adalah Matematika. floor(x) untuk menghapus desimal tanpa pembulatan (jadi floor(4. 9) = 4 ). Namun, sejak Javascript 6, mereka telah memperkenalkan Math. trunc() yang memotong ke int tanpa pembulatan, seperti yang diharapkan.

Bagaimana cara menghapus desimal tanpa pembulatan di JavaScript?

Matematika. trunc() adalah metode paling populer untuk menghapus bagian desimal JavaScript. Dibutuhkan angka positif, negatif, atau float sebagai input dan mengembalikan bagian bilangan bulat setelah menghapus bagian desimal. Misalnya, ketika kita memberikan input 5. 45, mengembalikan 5 saja, dan untuk input -5. 45, hanya mengembalikan -5.

Bagaimana cara menampilkan hanya 2 tempat desimal dalam JavaScript?

Untuk membatasi jumlah digit hingga 2 angka setelah desimal, digunakan metode toFixed() . Metode toFixed() membulatkan angka titik-mengambang hingga 2 tempat setelah desimal.