0

%中的负数怎么办VF

MOD(10,-3) = -2

MOD(-10,3) = 2

模式(-10,-3)= -1

为什么?

4

2 回答 2

3

它是一个常规模数:

mod 函数定义为一个数超过不大于该数的除数的最大整数倍的量。

你可以这样想:

10 % -3 :

小于-3的10最大倍数是-2

-210 % -3也是如此。

-10 % 3 :

现在,为什么-10 % 32

考虑它的最简单方法是在负数上加上2的倍数,使数字变为正数。

-10 + (4*3) = 2所以-10 % 3= (-10 + 12) % 3= 2 % 3= 3

于 2013-03-14T14:57:40.073 回答
2

以下是我们在 The Hacker's Guide to Visual FoxPro 中所说的:

MOD() 和 % 在处理正数时非常简单,但是当其中一个或两个数字为负时它们会变得有趣。理解结果的关键是以下等式:

MOD(x,y) = x - (y * FLOOR(x/y))

由于没有为负数定义数学模运算,因此很高兴看到 FoxPro 的定义在数学上是一致的。但是,它们可能与您最初的预期不同,因此您可能需要检查负除数或股息。

一些测试(和手册)告诉我们,正除数给出正结果,而负除数给出负结果。

于 2013-03-14T20:57:25.030 回答