Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İki sayıyı böler ve yalnızca kalanı döndürür.
Sözdizimi
result = number1 Mod number2
Parçalar
result
Gerekli. Herhangi bir sayısal değişken veya özellik.
number1
Gerekli. Herhangi bir sayısal ifade.
number2
Gerekli. Herhangi bir sayısal ifade.
Desteklenen türler
Tüm sayısal türler. Buna işaretsiz ve kayan nokta türleri ve Decimaldahildir.
Sonuç
Sonuç, ile bölündükten number2sonra number1 kalan sonuçdur. Örneğin, ifade 14 Mod 4 2 olarak değerlendirilir.
Uyarı
Matematikte kalan ile modül arasında fark vardır ve negatif sayılar için farklı sonuçlar elde edilir.
Mod Visual Basic'teki işleç, .NET Framework op_Modulus işleci ve temel rem IL yönergesinin tümü kalan işlemi gerçekleştirir.
İşlemin Mod sonucu, number1kar payı işaretini korur ve bu nedenle pozitif veya negatif olabilir. Sonuç her zaman (-number2, number2) aralığındadır. Örneğin:
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
Açıklamalar
number1 Veya number2 bir kayan nokta değeriyse, bölmenin kayan nokta geri kalanı döndürülür. Sonucun veri türü, ve number2veri türleriyle bölünmesinden kaynaklanan tüm olası değerleri tutabilen en küçük veri türüdürnumber1.
number2 Veya Hiçbir şey olarak değerlendirilirse number1 sıfır olarak değerlendirilir.
İlgili işleçler şunları içerir:
\ İşleci (Visual Basic), bir bölmenin tamsayı bölümünü döndürür. Örneğin, ifade
14 \ 43 olarak değerlendirilir./ İşleci (Visual Basic), kalan bölüm de dahil olmak üzere tam bölümünü kayan noktalı sayı olarak döndürür. Örneğin, ifade
14 / 43,5 olarak değerlendirilir.
Sıfıra bölme girişimi
Sıfır olarak değerlendirilirse number2 , işlecin davranışı Mod işlenenlerin veri türüne bağlıdır:
- İntegral bölme, derleme zamanında belirlenemezse bir DivideByZeroException özel durum
number2oluşturur ve derleme zamanında sıfır olarak değerlendirilirsenumber2derleme zamanı hatasıBC30542 Division by zero occurred while evaluating this expressionoluşturur. - Kayan nokta bölme döndürür Double.NaN.
Eşdeğer formül
İfade a Mod b aşağıdaki formüllerden biriyle eşdeğerdir:
a - (b * (a \ b))
a - (b * Fix(a / b))
Kayan noktalı kesinlik
Kayan noktalı sayılarla çalışırken, bunların bellekte her zaman kesin bir ondalık gösterimi olmadığını unutmayın. Bu, değer karşılaştırması ve işleç gibi belirli işlemlerden beklenmeyen sonuçlara Mod yol açabilir. Daha fazla bilgi için bkz. Veri Türlerinde Sorun Giderme.
Aşırı Yükleme
işleci Modaşırı yüklenebilir, bu da bir sınıfın veya yapının davranışını yeniden tanımlayabildiği anlamına gelir. Kodunuz böyle bir aşırı yükleme içeren bir sınıf veya yapı örneği için geçerliyse Mod , yeniden tanımlanmış davranışını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.
Örnek 1
Aşağıdaki örnek, iki sayıyı bölmek ve yalnızca kalanı döndürmek için işlecini kullanır Mod . Sayılardan biri kayan noktalı bir sayıysa, sonuç kalan değeri temsil eden kayan noktalı bir sayıdır.
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
Örnek 2
Aşağıdaki örnek, kayan nokta işlenenlerinin olası kesinliklerini gösterir. İlk deyimde işlenenler şeklindedir Doubleve 0,2, depolanmış değeri 0,20000000000000001 olan sonsuz yinelenen bir ikili kesirdir. İkinci deyimde, değişmez tür karakteri D her iki işleneni de ile Decimalzorlar ve 0,2'nin kesin bir gösterimi vardır.
firstResult = 2.0 Mod 0.2
' Double operation returns 0.2, not 0.
secondResult = 2D Mod 0.2D
' Decimal operation returns 0.