Article View: net.lang.pascal
Article #64Re: Floating Point trunc?
From: Seaman
Date: Sat, 18 Feb 1984 17:51
Date: Sat, 18 Feb 1984 17:51
29 lines
1354 bytes
1354 bytes
> All I want to do is to remove the fractional part of a real number,
> in a machine-independent fashion using vanilla J&W pascal only.
> You are NOT allowed to generate an integer during the calculation, ala
>
> real_value := trunc(real_value); { integer overflow may occur }
Here is a quick hack which I think will do the job:
function ftrunc(x : real) : real;
var y : real;
begin
y := abs(x);
if y <= maxint then
ftrunc := trunc(x)
else if y = y + 1.0 then
ftrunc := x
else begin
y := ftrunc(x/maxint) * maxint;
ftrunc := y + ftrunc(x-y)
end
end;
--
Dave Seaman
..!pur-ee!pucc-i:ags
"Against people who give vent to their loquacity
by extraneous bombastic circumlocution."
Technical Details
Message-ID:
<211@pucc-i>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!hou3c!hocda!houxm!ihnp4!inuxc!pur-ee!CS-Mordred!Pucc-H:Pucc-I:agsReferences:
<20300001@hp-dcde.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site pucc-i Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!hou3c!hocda!houxm!ihnp4!inuxc!pur-ee!CS-Mordred!Pucc-H:Pucc-I:ags From: ags@pucc-i (Seaman) Newsgroups: net.lang.pascal Subject: Re: Floating Point trunc? Message-ID: <211@pucc-i> Date: Sat, 18-Feb-84 12:51:14 EST Article-I.D.: pucc-i.211 Posted: Sat Feb 18 12:51:14 1984 Date-Received: Mon, 20-Feb-84 07:16:04 EST References: <20300001@hp-dcde.UUCP> Organization: Purdue University Computing Center Lines: 29