在大部分語(yǔ)言(c、c++、c#、java、vb.net、php等)中,求余的結(jié)果的正負(fù)與被除數(shù)相同。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比黃山區(qū)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式黃山區(qū)網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋黃山區(qū)地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
因此,-13%5的結(jié)果是-3。
但對(duì)于python,結(jié)果是2。
因?yàn)閷?duì)于python而言,是這樣算%的結(jié)果的:
a%b=a-(a//b*b)
a//b表示a除以b的整數(shù)部分,是向下取整,即向負(fù)無(wú)窮大方向取整。
因此,-13//5等于-3,而-13%5=-13-(-13//5*5)=-13-(-3*5)=-13-(-15)=2。
所以,-13%5的結(jié)果要看語(yǔ)言而定,一般是-3。
VB6中Mod 運(yùn)算符功能是兩數(shù)相除求余。
如果兩數(shù)中帶小數(shù),Mod 會(huì)先四舍六入取整,再按整數(shù)求余,余數(shù)帶小數(shù)的話只取整數(shù)部分。
注意,如果有書(shū)說(shuō)四舍五入,是錯(cuò)的。
在 VB6 用的是所謂銀行家算法,是四舍六入:
小數(shù)部分比 0.5 小就舍(例如0.4,0.49999),比 0.5 大就進(jìn)(例如0.6,0.500001),
剛好是 0.5 可能舍可能進(jìn),如果小數(shù)點(diǎn)前面是偶數(shù)就舍(例如2.5 得 2),是奇數(shù)就進(jìn)(例如3.5 得 4)。
Mod 運(yùn)算符在VB.NET中有改動(dòng),余數(shù)可以帶小數(shù)。
以上資料來(lái)自:
所以2.5 mod 2結(jié)果是0
VB中通過(guò)Mod方式求余比如:Dim r as Integer '定義一個(gè)整型變量r
r = 50 Mod 4 '求50除以4的
余數(shù)
,賦值給變量r補(bǔ)充:VB中取余
運(yùn)算符
是Mod
Not一個(gè)數(shù)值實(shí)際上是對(duì)這個(gè)數(shù)值進(jìn)行“非”運(yùn)算,即轉(zhuǎn)換為2進(jìn)制,0變?yōu)?,1變?yōu)?,你可以這樣試:
For i = 1 To 10
s = i
debug.print not (i Mod 5 )
Next
這樣可以看到not (i Mod 5 )這個(gè)表達(dá)式究竟等于多少。
按照你的想法,應(yīng)該這樣做結(jié)果才是對(duì)的:
If Not (i Mod 5 0) Then