Floating Point Rounding
From Erlang Community
| Revision as of 16:43, 3 December 2006 (edit) Kaiserpanda (Talk | contribs) m ← Previous diff |
Revision as of 08:50, 4 December 2006 (edit) (undo) Andreas (Talk | contribs) m (Reverted edits by Kaiserpanda (Talk); changed back to last version by Ayrnieu) Next diff → |
||
| Line 56: | Line 56: | ||
| [[Category:CookBook]][[Category:NumberRecipes]] | [[Category:CookBook]][[Category:NumberRecipes]] | ||
| - | |||
| - | |||
| - | |||
| - | [http://www.casino-web-gambling.com/blackjack-tips/blackjack-hints.html blackjack hints] | ||
| - | [http://www.gambling-online-theory.com/online-casino/online-casino-for-cash.html online casino for cash] | ||
| - | [http://www.casino-games-wiki.com/index.php/casino_games_online casino games online] | ||
| - | [http://www.casino-theory.com/online-casino-bonus/free-online-casino-tournament.html free online casino tournament] | ||
| - | [http://www.casino-theory.com/online-casino-bonus/free-online-casino-tournament.html free online casino tournament] | ||
| - | [http://www.gambling-online-theory.com/casinos-portal/internet-casinos-sites.html internet casinos sites] | ||
| - | [http://www.casino-games-wiki.com/index.php/play_casino_games_games_online play casino games games online] | ||
| - | [http://www.casinos-go.com/online-casino-tips/index.html online casino tips] | ||
| - | [http://www.gambling-online-theory.com/casinos-portal/index.html casinos portal] | ||
| - | [http://www.gambling-online-theory.com/casinos-portal/casinos-games.html casinos games] | ||
Revision as of 08:50, 4 December 2006
Problem
You need to round a floating-point number to an integer.
Solution
Use one of the functions round/1, ceiling/1, floor/1 and trunc/1. Note, the standard Erlang distribution does not come with either floor/1 or ceiling/1, but they can be easily implemented in terms of trunc/1
floor(X) ->
T = trunc(X),
case X - T < 0 of
true -> T - 1;
false -> T
end.
ceiling(X) ->
T = trunc(X),
case X - T < 0 of
true -> T;
false -> T + 1
end.
1> floor(-4.3).
-5
2> ceiling(-4.3).
-4
3> trunc(-4.3).
-4
4> round(-4.3).
-4
5> floor(3.5).
3
6> ceiling(3.5).
4
7> trunc(3.5).
3
8> round(3.5).
4
9> round(7).
7
|
The procedures all return integers.
round/1 returns the closest integer to x, rounding to even when x is halfway between two integers. floor/1 returns the largest integer not larger than x. ceiling/1 returns the smallest integer not smaller than x. trunc/1 returns the integer closest to x whose absolute value is not larger than the absolute value of x.
Further general information on math and rounding is available from:
MathWorld definition of the Floor Function. MathWorld definition of the Ceiling Function

Digg It
Del.icio.us
Reddit
Facebook
Stumble Upon
Technorati

