Bagikan melalui


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