Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membagi dua angka dan hanya mengembalikan sisanya.
Sintaksis
result = number1 Mod number2
Bagian
result
Dibutuhkan. Variabel atau properti numerik apa pun.
number1
Dibutuhkan. Ekspresi numerik apa pun.
number2
Dibutuhkan. Ekspresi numerik apa pun.
Jenis yang didukung
Semua jenis numerik. Ini termasuk jenis unsigned dan floating-point dan Decimal.
Hasil
Hasilnya adalah sisa setelah number1 dibagi dengan number2. Misalnya, ekspresi 14 Mod 4 mengevaluasi ke 2.
Nota
Ada perbedaan antara sisa dan modulus dalam matematika, dengan hasil yang berbeda untuk angka negatif. Operator Mod di Visual Basic, operator .NET Framework op_Modulus , dan instruksi IL rem yang mendasar semuanya melakukan operasi yang lebih tersisa.
Hasil operasi Mod mempertahankan tanda dividen, number1, sehingga mungkin positif atau negatif. Hasilnya selalu dalam rentang (-number2, number2), eksklusif. Contohnya:
Public Module Example
Public Sub Main()
Console.WriteLine($" 8 Mod 3 = {8 Mod 3}")
Console.WriteLine($"-8 Mod 3 = {-8 Mod 3}")
Console.WriteLine($" 8 Mod -3 = {8 Mod -3}")
Console.WriteLine($"-8 Mod -3 = {-8 Mod -3}")
End Sub
End Module
' The example displays the following output:
' 8 Mod 3 = 2
' -8 Mod 3 = -2
' 8 Mod -3 = 2
' -8 Mod -3 = -2
Komentar
Jika salah satu number1 atau number2 merupakan nilai floating-point, sisa floating-point dari pembagian dikembalikan. Jenis data hasilnya adalah jenis data terkecil yang dapat menyimpan semua nilai yang mungkin yang dihasilkan dari pembagian dengan jenis number1 data dan number2.
Jika number1 atau number2 mengevaluasi ke Tidak Ada, itu diperlakukan sebagai nol.
Operator terkait mencakup hal-hal berikut:
Operator \ (Visual Basic) mengembalikan kuota bilangan bulat dari pembagian. Misalnya, ekspresi
14 \ 4mengevaluasi ke 3.Operator /(Visual Basic) mengembalikan kuota penuh, termasuk sisanya, sebagai angka floating-point. Misalnya, ekspresi
14 / 4mengevaluasi ke 3,5.
Upaya pembagian dengan nol
Jika number2 mengevaluasi ke nol, perilaku Mod operator bergantung pada jenis data operand:
- Divisi integral melempar DivideByZeroException pengecualian jika
number2tidak dapat ditentukan dalam waktu kompilasi dan menghasilkan kesalahanBC30542 Division by zero occurred while evaluating this expressionwaktu kompilasi jikanumber2dievaluasi ke nol pada waktu kompilasi. - Pembagian floating-point mengembalikan Double.NaN.
Rumus yang setara
Ekspresi a Mod b setara dengan salah satu rumus berikut:
a - (b * (a \ b))
a - (b * Fix(a / b))
Impresi titik mengambang
Ketika Anda bekerja dengan angka floating-point, ingatlah bahwa angka tersebut tidak selalu memiliki representasi desimal yang tepat dalam memori. Ini dapat menyebabkan hasil yang tidak terduga dari operasi tertentu, seperti perbandingan Mod nilai dan operator. Untuk informasi selengkapnya, lihat Pemecahan Masalah Jenis Data.
Beban Berlebih
Operator Mod dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat menentukan ulang perilakunya. Jika kode Anda berlaku untuk instans Mod kelas atau struktur yang menyertakan kelebihan beban seperti itu, pastikan Anda memahami perilaku yang ditentukan ulang. Untuk informasi selengkapnya, lihat Prosedur Operator.
Contoh 1
Contoh berikut menggunakan Mod operator untuk membagi dua angka dan hanya mengembalikan sisanya. Jika salah satu angka adalah angka floating-point, hasilnya adalah angka floating-point yang menunjukkan sisanya.
Debug.WriteLine(10 Mod 5)
' Output: 0
Debug.WriteLine(10 Mod 3)
' Output: 1
Debug.WriteLine(-10 Mod 3)
' Output: -1
Debug.WriteLine(12 Mod 4.3)
' Output: 3.4
Debug.WriteLine(12.6 Mod 5)
' Output: 2.6
Debug.WriteLine(47.9 Mod 9.35)
' Output: 1.15
Contoh 2
Contoh berikut menunjukkan potensi impresi operand floating-point. Dalam pernyataan pertama, operan adalah Double, dan 0,2 adalah pecahan biner berulang tanpa batas dengan nilai tersimpan 0,200000000000000000001. Dalam pernyataan kedua, karakter D jenis harfiah memaksa kedua operan ke Decimal, dan 0,2 memiliki representasi yang tepat.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.