In ISO/IEC 9899:1999, it is unambiguous that floor(-0.5)
has the value -1 (converted to double).
Was this the case in earlier C standards?
Is anyone aware of an implementaton that has it wrong ?
Francois Grieu <(E-Mail Removed)> writes:
> In ISO/IEC 9899:1999, it is unambiguous that floor(-0.5)
> has the value -1 (converted to double).
> Was this the case in earlier C standards?
The floor function returns the largest integral value not greater
than x, expressed as a double.
The floor functions return |_ x _|, expressed as a floating-point number.
where "|_" and "_|" are my crude rendition of the mathematical symbol
for the floor function.
> Is anyone aware of an implementaton that has it wrong ?
I'm not -- and given that the function is called "floor", getting it
wrong (say, by rounding towards 0.0) would be a pretty dumb mistake.
Keith Thompson (The_Other_Keith)
San Diego Supercomputer Center <*> <http://www.sdsc.edu/~kst>
Schroedinger does Shakespeare: "To be *and* not to be"
In article <(E-Mail Removed)>, Keith Thompson <(E-Mail Removed)>
> C90 says:
> The floor function returns the largest integral value not greater
> than x, expressed as a double.
Very clear indeed.
> C99 says:
> The floor functions return |_ x _|, expressed as a floating-point number.
> where "|_" and "_|" are .. the mathematical symbol for the floor function.
And |_ x _| is defined in ?3.19 as
... "the greatest integer less than or equal to x.
Example: |_ 2.4 _| is 2, |_ -2.4 _| is -3."
Thanks for the C90 quote !
comp.lang.c Answers to Frequently Asked Questions (FAQ List)
Show Printable Version
Email this Page
post new threads
edit your posts
HTML code is
Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc..
SEO by vBSEO ©2010, Crawlability, Inc.