*BSD News Article 9579


Return to BSD News archive

Received: by minnie.vk1xwt.ampr.org with NNTP
	id AA6044 ; Mon, 04 Jan 93 16:16:59 EST
Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!wupost!csus.edu!netcom.com!abe
From: abe@netcom.com (David Abercrombie)
Subject: Doubles rounded when cast to int
Message-ID: <1993Jan6.143337.17276@netcom.com>
Keywords: gcc, floating, integers
Organization: Netcom - Online Communication Services  (408 241-9760 guest) 
Date: Wed, 6 Jan 1993 14:33:37 GMT
Lines: 23

Programs compiled on 386bsd using gcc 1.39 do not seem to 
cast doubles to ints correctly.  K&R says: "When the value of
a floating type is converted to integral type, the fractional 
is discarded...".  However, on my system (and on ref.tfs.com under
gcc 1.39), doubles get _rounded_ to the nearest int during a cast 
(instead of getting truncated).

Compiling with gcc 2.3.3 (on ref.tfs.com) provides programs 
that cast doubles to ints properly.

Why is this happening?  Feature or bug?  My own silly mistakes?
Is there a fix?

Thanks!
--
Dave Abercrombie                abe%lyra@infoserv.com
Oakland, CA                        abe@lyra.UUCP
(510) 652-7131                     abe@netcom.com

-- 
Dave Abercrombie                lyra!abe@infoserv.com
Oakland, CA                        abe@lyra.UUCP
(510) 652-7131                     abe@netcom.com