use*_*221 2 math erlang
我们所有的数学书籍都在教导我们,其余的总是积极的.Wiki告诉我,余数可以是最小正余数或最小绝对余数.这是一个非常基本的概念,对很多人(包括我)来说很难忘掉.当程序员使用多种语言时,它可能会导致奇怪的错误.
erlang重新定义这样一个基本概念的原因是什么?
Eshell V6.2 (abort with ^G) 1> -5 rem 3. -2
该结果与最小正余数或最小绝对余数概念不一致.
http://en.wikipedia.org/wiki/Remainder#Integer_division
Cim*_*ali 5
这是因为整数除法向0舍入.
它发生在许多其他编程语言中,例如,请参阅有关C的答案.
事实上,如果你认为在%操作之前将分裂定义为,那么我们仍然期望a = (a / b) * b + (a % b).然后自然而然
%
a = (a / b) * b + (a % b)
如果我们舍入-infinity而不是0,那么-5/3将是-2,%将是模数运算符.现在它只是该部门的剩余部分.
归档时间:
11 年,2 月 前
查看次数:
102 次
最近记录:
9 年,8 月 前