aboutsummaryrefslogtreecommitdiff
path: root/coreutils-5.3.0-bin/share/awk/round.awk
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils-5.3.0-bin/share/awk/round.awk')
-rw-r--r--coreutils-5.3.0-bin/share/awk/round.awk29
1 files changed, 29 insertions, 0 deletions
diff --git a/coreutils-5.3.0-bin/share/awk/round.awk b/coreutils-5.3.0-bin/share/awk/round.awk
new file mode 100644
index 0000000..c5e993f
--- /dev/null
+++ b/coreutils-5.3.0-bin/share/awk/round.awk
@@ -0,0 +1,29 @@
+# round.awk --- do normal rounding
+#
+# Arnold Robbins, arnold@skeeve.com, Public Domain
+# August, 1996
+
+function round(x, ival, aval, fraction)
+{
+ ival = int(x) # integer part, int() truncates
+
+ # see if fractional part
+ if (ival == x) # no fraction
+ return x
+
+ if (x < 0) {
+ aval = -x # absolute value
+ ival = int(aval)
+ fraction = aval - ival
+ if (fraction >= .5)
+ return int(x) - 1 # -2.5 --> -3
+ else
+ return int(x) # -2.3 --> -2
+ } else {
+ fraction = x - ival
+ if (fraction >= .5)
+ return ival + 1
+ else
+ return ival
+ }
+}