回答
這會給0到n之間的結果 - 1 x的正反兩方面的價值:
((x % n) + n) % n
那麼,modular arithmetic是在整數的equivalence classes上完成的,所以Excel和任何RDBMS都沒有「做錯%
」。如果你想在0和6之間的代表性,但是,你總是可以做
select (-3 % 7) + 7;
唯一的問題是,如果我的值是0,我需要0 –
等待的結果,所以你有一對整數'M'和'N'這樣'M'是要一致0 mod'n',但是'select m%n'正在返回除零之外的東西嗎? – 2012-05-06 17:58:08
@JackManey:你在'(m%n)+ n'中的答案,這給出了'(0%n)+ n = n',其中OP希望它等於'0'。這是MarkByers的答案有額外的'%n'的原因的一個子集。 – MatBailie
敢於沉悶(並且遲到派對)。
declare @Modulus as Int = 7
declare @Samples as Table (Value Int)
insert into @Samples (Value) values (-12), (-3), (0), (3), (13), (70)
select Value,
case Sign(Value)
when 1 then Value % @Modulus
when -1 then Value % @Modulus + @Modulus
else 0
end as Modulus
from @Samples
- 1. 就像在SQL Server
- 2. 在VBA excel中修改VLOOKUP
- 3. 使用PHP中的DateTime負數::修改()
- 4. SQL修復負值
- 5. data.table就地修改R
- 6. LXML:修改樹就地
- 7. 使用Excel值修改SQL查詢
- 8. 在T-SQL中修改視圖數據
- 9. Python中的'就地'字符串修改
- 10. 修改基於Excel在VB.NET
- 11. 直觀地修改JavaDb關係(就像在訪問中一樣)在Netbeans
- 12. Excel整列修改
- 13. 在Excel文件中修改文本
- 14. 在Excel中複製和修改值
- 15. 在excel散點圖中修改圖例
- 16. 在ReportViewer中修改導出到Excel
- 17. 將Excel批量複製到SQL Server,但有數據修改
- 18. 就像在ActiveDirectory中
- 19. c#修改SQL數據
- 20. 修改emacs的前向/後向行爲(就像在vi/vim中一樣)
- 21. 修改圖像元數據
- 22. SQL就像使用列名
- 23. 如何啓用/修改phpbb網址就像html一樣工作?
- 24. 修改sql表
- 25. 負荷模型就像一個沒有燼數據刷新
- 26. 幫助修改excel數組公式?
- 27. 用於XML數據修改的Excel宏
- 28. 用原型修改陣列就地
- 29. 不做任何修改就重建
- 30. Perl的運算符修改就地
這東西是在我的頭上,但那是有效的。謝謝! –
我的朋友剛剛指出,一個較短的版本將是(n + x)%n –
@TomHalladay:適用於x> = -n,但仍會給出x <-n的負面結果。 –