diff options
Diffstat (limited to 'src/svg/round.cpp')
| -rw-r--r-- | src/svg/round.cpp | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/svg/round.cpp b/src/svg/round.cpp deleted file mode 100644 index 0a4ca9d05..000000000 --- a/src/svg/round.cpp +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// ftos.cc -// -// Copyright (c) 1996-2003 Bryce W. Harrington [bryce at osdl dot org] -// -//----------------------------------------------------------------------- -// License: This code may be used by anyone for any purpose -// so long as the copyright notices and this license -// statement remains attached. -//----------------------------------------------------------------------- -// This routine rounds a double using the "rounding rule", as expressed -// in _Advanced Engineering Mathematics_ by Erwin Kreyszig, 6th ed., -// John Wiley & Sons, Inc., 1988, page 945. -// -// Discard the (k+1)th and all subsequent decimals. -// (a) If the number thus discarded is less than half a unit in the -// kth place, leave the kth decimal unchanged ("rounding down") -// (b) If it is greater than half a unit in the kth place, add one -// to the kth decimal ("rounding up") -// (c) If it is exactly half a unit, round off to the nearest *even* -// decimal. -// Example: Rounding off 3.45 and 3.55 by one decimal gives 3.4 and -// 3.6, respectively. -// Rule (c) is to ensure that in discarding exactly half a decimal, -// rounding up and rounding down happens about equally often, -// on the average. -/////////////////////////////////////////////////////////////////////// -#include <math.h> -#include "../io/ftos.h" /* own include */ /* note - why in different dirs? */ - -double rround(double x) -{ - double xlow = floor(x); - if (x - xlow != 0.5000) - return floor(x + 0.5000); - else if ( floor(x/2.0) == xlow/2.0) - return xlow; - else - return xlow++; -} - -// This version allows rounding to a specific digit -double rround(double x, int k) -{ - if (k==0) return rround(x); - else return rround(x*pow(10,k)) / pow(10,k); -} - |
