excel vb 求餘數

2009-01-11 10:13 am
為何 a = -5 mod 12
a 會是 -5 而不是 7 ????

請問要怎樣寫才能得到 7?

回答 (3)

2009-01-11 3:51 pm
✔ 最佳答案
數學上此formula係冇可能得到7的,因為用12除-5所得商數連1嘟冇(-0.41667)所以餘數即係被除數嘅全數。
任何除數 > 被除數,餘數即係被除數(即係冇郁過)
圖片參考:http://tw.yimg.com/i/tw/ugc/rte/smiley_22.gif


2009-01-11 08:30:52 補充:
應該話任何ABS(除數) > ABS(被除數),餘數即係被除數(即係冇郁過)。ABS = Absolute Value Of

2009-01-13 14:00:46 補充:
Sorry 呀!我還以為你係指 12 除 -5,原來係 -5 除 12。謝謝新田美香友贊指點的 link & formula。VB 程式如下:

Sub fudgeRemainder()
x = -5
y = 12
answer = x - y * Int(x / y)
MsgBox answer
End Sub
2009-01-12 11:36 pm
pokemono正解
mod(number, divisor) 是不可引用其中一個是負數, 計算結果是會出錯, 是微軟的問題。
vba -5 mod 12 傳值正確, 答案是 -5 (不是 7)
如 -15 mod 12, 答案是 -3 (不是 9)
http://support.microsoft.com/kb/214271/en-us

2009-01-13 00:23:41 補充:
如要 = 7, 你可引用微軟在設計MOD函數的錯誤方法
MOD(n,d)=n-d*INT(n/d)
VBA 與 函數的語法完全相同:
a - 12 * Int(a/12)
2009-01-11 5:47 pm
但在excel裏用函數 mod(number, divisor)即 =mod(-5, 12) 答案是 7 而不是 -5

那麼在excel vb裏要怎樣寫呢???

2009-01-12 21:50:19 補充:
原來是微軟的問題!!
明白了~~謝謝

其實我是想問用vb怎樣寫才能令 -5 mod 12 = 7
我想到的是這個:
a = -5
((a mod 12) + 12) mod 12 = 7

想問問會不會有直接一點的方法


收錄日期: 2021-04-19 13:21:45
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090111000051KK00183

檢視 Wayback Machine 備份