Enum System.MidpointRounding
Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.
MidpointRounding Gunakan enumerasi dengan kelebihan beban yang sesuai dari Math.Round, MathF.Round, dan Decimal.Round untuk memberikan kontrol lebih besar atas proses pembulatan.
Ada dua strategi pembulatan keseluruhan—round to nearest dan directed rounding—dan setiap bidang enumerasi berpartisipasi dalam salah satu strategi ini.
Membulatkan ke terdekat
Bidang:
Operasi round-to-nearest mengambil angka asli dengan presisi implisit atau ditentukan; memeriksa digit berikutnya, yaitu pada presisi tersebut ditambah satu; dan mengembalikan angka terdekat dengan presisi yang sama dengan angka asli. Untuk angka positif, jika digit berikutnya adalah dari 0 hingga 4, angka terdekat adalah menuju tak terbatas negatif. Jika digit berikutnya adalah dari 6 hingga 9, angka terdekat adalah menuju tak terbatas positif. Untuk angka negatif, jika digit berikutnya adalah dari 0 hingga 4, angka terdekat adalah menuju tak terbatas positif. Jika digit berikutnya adalah dari 6 hingga 9, angka terdekat adalah menuju tak terbatas negatif.
Jika digit berikutnya adalah dari 0 hingga 4 atau 6 hingga 9, MidpointRounding.AwayFromZero
dan MidpointRounding.ToEven
tidak memengaruhi hasil operasi pembulatan. Namun, jika digit berikutnya adalah 5, yang merupakan titik tengah antara dua hasil yang mungkin, dan semua digit yang tersisa adalah nol atau tidak ada digit yang tersisa, angka terdekat ambigu. Dalam hal ini, mode round-to-nearest memungkinkan MidpointRounding
Anda menentukan apakah operasi pembulatan mengembalikan angka terdekat jauh dari nol atau angka genap terdekat.
Tabel berikut menunjukkan hasil pembulatan beberapa angka negatif dan positif bersama dengan mode round-to-nearest. Presisi yang digunakan untuk membulatkan angka adalah nol, yang berarti angka setelah titik desimal mempengaruhi operasi pembulatan. Misalnya, untuk angka -2,5, digit setelah titik desimal adalah 5. Karena digit tersebut adalah titik tengah, Anda dapat menggunakan MidpointRounding
nilai untuk menentukan hasil pembulatan. Jika AwayFromZero
ditentukan, -3 dikembalikan karena merupakan angka terdekat yang jauh dari nol dengan presisi nol. Jika ToEven
ditentukan, -2 dikembalikan karena merupakan angka genap terdekat dengan presisi nol.
Nomor asli | AwayFromZero | ToEven |
---|---|---|
3.5 | 4 | 4 |
2.8 | 3 | 3 |
2.5 | 3 | 2 |
2.1 | 2 | 2 |
-2.1 | -2 | -2 |
2.5- | -3 | -2 |
-2.8 | -3 | -3 |
3.5- | 4- | 4- |
Pembulatan yang diarahkan
Bidang:
Operasi pembulatan terarah mengambil angka asli dengan presisi implisit atau ditentukan dan mengembalikan angka terdekat berikutnya ke arah tertentu dengan presisi yang sama dengan angka asli. Mode yang diarahkan pada MidpointRounding
kontrol ke arah nomor yang telah ditentukan sebelumnya yang dilakukan pembulatan.
Tabel berikut menunjukkan hasil pembulatan beberapa angka negatif dan positif bersama dengan mode pembulatan yang diarahkan. Presisi yang digunakan untuk membulatkan angka adalah nol, yang berarti angka sebelum titik desimal dipengaruhi oleh operasi pembulatan.
Nomor asli | ToNegativeInfinity | ToPositiveInfinity | ToZero |
---|---|---|---|
3.5 | 3 | 4 | 3 |
2.8 | 2 | 3 | 2 |
2.5 | 2 | 3 | 2 |
2.1 | 2 | 3 | 2 |
-2.1 | -3 | -2 | -2 |
2.5- | -3 | -2 | -2 |
-2.8 | -3 | -2 | -2 |
3.5- | 4- | -3 | -3 |