首页 > 代码库 > 关于erlang的向上取整和向下取整
关于erlang的向上取整和向下取整
在erlang的API中,erlang:trunc/1 是就近取整,erlang:round/1是四舍五入的,
整理下:对于正数的向上和向下取整,
1 %% 向上取整2 ceil(N) ->3 T = trunc(N),4 case N == T of5 true -> T;6 false -> 1 + T7 end.
1 %% 向下取整2 floor(X) ->3 T = trunc(X),4 case (X < T) of5 true -> T - 1;6 _ -> T7 end.
而对于负数的向上和向下取整,稍微变通下,即可使用于全部数(包括正数和负数):
%% 取整 大于X的最小整数ceil(X) -> T = trunc(X), if X - T == 0 -> T; true -> if X > 0 -> T + 1; true -> T end end.
%% 取整 小于X的最大整数floor(X) -> T = trunc(X), if X - T == 0 -> T; true -> if X > 0 -> T; true -> T-1 end end.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。