1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<html><head>
<title>cl:round</title>
<style type="text/css">
.example {
color: #000000;
background-color: #F5F5F5;
padding: 8px;
border: #808080;
border-style: solid;
border-width: 1px;
width:auto;
}
.button {
color: #000000;
background-color: #F5F5F5;
padding-top: 1px;
padding-bottom: 1px;
padding-left: 4px;
padding-right: 8px;
border: #808080;
border-style: solid;
border-width: 1px;
white-space: pre;
}
.box {
color: #000000;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 16px;
padding-right: 16px;
border: #808080;
border-style: solid;
border-width: 1px;
}
</style>
</head>
<body>
<a href="../../start.htm">Nyquist / XLISP 2.0</a> -
<a href="../../manual/contents.htm">Contents</a> |
<a href="../../tutorials/tutorials.htm">Tutorials</a> |
<a href="../examples.htm">Examples</a> |
<a href="../../reference/reference-index.htm">Reference</a>
<hr>
<h1>cl:round</h1>
<hr>
<p>The <nobr>cl:<b>round</b></nobr> function
<a href="../../reference/truncate.htm">truncate</a>s an integer or
<nobr>floating-point</nobr> number toward the next integer:</p>
<p><div class="box">
<dl>
<dt>(cl:<b>round</b> <i>number </i> [<i>divisor</i>])</dt>
<dd><i>number</i> - an integer or <nobr>floating-point</nobr> number<br>
<i>divisor</i> - an integer or <nobr>floating-point</nobr> number, except zero<br>
<table cellpadding="0" cellspacing="0"><tbody>
<tr>
<td valign="top"><nobr>returns</nobr></td>
<td valign="top"><nobr> - </nobr></td>
<td width="100%">the result of runding the result of <i>number</i> divided by <i>divisor</i></td>
</tr>
<tr>
<td></td>
<td valign="top"><nobr> - </nobr></td>
<td width="100%">the remainder of the round operation</td>
</tr>
</tbody></table></dd>
</dl>
</div></p>
<pre class="example">
(defun <font color="#0000CC">cl:round</font> (number &optional (divisor
(if (integerp number) 1 1.0)
divisor-p))
(let* ((x (/ (float number) divisor))
(quotient (cond ((and (not divisor-p) (integerp number)) number)
((= number divisor) 1)
((plusp x) (truncate (+ x 0.5)))
((= (- x 0.5) (truncate (- x 0.5)))
(if (minusp x)
(1- (truncate x))
(truncate x)))
(t (truncate (- x 0.5))))))
(setq <font color="#AA5500">*rslt*</font> (list quotient (- number (* quotient divisor)))
<font color="#AA5500">cl:*multiple-values*</font> t)
quotient))
</pre>
<p>The <nobr>cl:<b>round</b></nobr> function computes a quotient that has
been rounded to the nearest mathematical integer. <nobr>If the</nobr>
mathematical quotient is exactly halfway between two integers, [that is, it
has the form <nobr>'integer+1/2']</nobr>, then the quotient has been rounded
to the even [divisible <nobr>by two]</nobr> integer.</p>
<p>The quotient is directly returned by the function, while a list:</p>
<pre class="example">
(quotient remainder)
</pre>
<p>is stored in the Nyquist/XLISP
<a href="../../reference/global-rslt.htm">*rslt*</a> variable and the
<a href="global-multiple-values.htm">cl:*multiple-values*</a> is set to
<a href="../../reference/t.htm"> T </a> to signal that
<a href="multiple-values.htm">Multiple Values</a> are returned.</p>
<nobr>See
<a href="rounding-and-truncation.htm">Rounding and Truncation</a></nobr>
for more details.</p>
<p>Examples:</p>
<pre class="example">
(round 3.5) => 4
(round -3.5) => -3
(cl:round 3.5) => 4 <font color="#008844">; *rslt* = ( 4 -0.5)</font>
(cl:round -3.5) => -4 <font color="#008844">; *rslt* = (-4 0.5)</font>
</pre>
<p><nobr> <a href="#top">Back to top</a></nobr></p>
<hr>
<a href="../../start.htm">Nyquist / XLISP 2.0</a> -
<a href="../../manual/contents.htm">Contents</a> |
<a href="../../tutorials/tutorials.htm">Tutorials</a> |
<a href="../examples.htm">Examples</a> |
<a href="../../reference/reference-index.htm">Reference</a>
</body></html>
|