473,395 Members | 1,577 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

floor(-0.5)

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 ?

Françosi Grieu
Nov 14 '05 #1
2 5196
Francois Grieu <fg****@micronet.fr> 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?
C90 says:

The floor function returns the largest integral value not greater
than x, expressed as a double.

C99 says:

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) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://www.sdsc.edu/~kst>
Schroedinger does Shakespeare: "To be *and* not to be"
Nov 14 '05 #2
In article <ln************@nuthaus.mib.org>, Keith Thompson <ks***@mib.org>
wrote:
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 !

Francois Grieu
Nov 14 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.