我有一个内部计数器,从0-999999999999开始。
我希望这显示为0-9999之间的数字,然后再次翻转。
这意味着:
编辑:
1 + $ number%9999就是答案(谢谢@Brad Christie)。我的预期结果表是错误的。 (谢谢@Tevo D)
答案 0 :(得分:4)
$x = 9280293;
$baseNineNineNineNine = $x % 9999;
使用MOD,它将为你提供9999之后的余数(例如任何数字除以9999可以进入N次,余数为Y(你最终将Y作为值)
对于您要查找的数字,您可能需要+1
在MOD(%
)后获得的任何值,或使用10000
另请参阅Modulus Operator
答案 1 :(得分:3)
使用10000提醒,保证结果在0到9999之间并翻转
$result = $int % 10000;
答案 2 :(得分:2)
您的价值观表与您要求的不符。在该示例中,您使用9999个结果值(1-9999)表示10000个输入值。在文中你要说10000输出值(0-9999)。
这是我认为你真正要求的。该算法将输出1-9999,然后再次翻转为1。
换句话说,此解决方案将提供四位非零值:
$result = $int % 9999 + 1;
输出将与您的示例不匹配,因为您的示例使其滚动每10000个值,而不是9999.这是输出:
input output
0 1
1 2
.... ....
9997 9998
9998 9999
9999 1 <--- 9999 * 1
10000 2
.... ....
19996 9998
19997 9999
19998 1 <--- 9999 * 2
19999 2
.... ....
19995 9998
19996 9999
19997 1 <--- 9999 * 3
19998 2
.... ....