我是Erlang的新手.你怎么做模数(得到除法的其余部分)?它在大多数类C语言中都是%,但它在Erlang中指定了注释.
有几个人回复了rem,在大多数情况下这很好.但我正在重新考虑这一点,因为现在我需要使用负数而rem会给你一个除法的余数,这与负数的模数不同.
gri*_*ton 40
在Erlang中,5 rem 3.给出2,而-5 rem 3.给-2.如果我理解你的问题,你会想要-5 rem 3.而不是1,因为-5 = -2*3 + 1.
这样做你想要的吗?
mod(X,Y) when X > 0 -> X rem Y;
mod(X,Y) when X < 0 -> Y + X rem Y;
mod(0,Y) -> 0.
Run Code Online (Sandbox Code Playgroud)
Aln*_*tak 28
erlang模运算符是 rem
Eshell V5.6.4 (abort with ^G)
1> 97 rem 10.
7
Run Code Online (Sandbox Code Playgroud)
我在灵药中使用了以下内容:
defp mod(x,y) when x > 0, do: rem(x, y);
defp mod(x,y) when x < 0, do: rem(x, y) + y;
defp mod(0,_y), do: 0
Run Code Online (Sandbox Code Playgroud)
请不要低估这一点,因为它是另一种语言而不是问题.我们都过着梦想,因为我们都拥有光束.
| 归档时间: |
|
| 查看次数: |
31749 次 |
| 最近记录: |