[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Why do some math functions return -0
- From: caseyh@...
- Date: Sun, 19 Sep 2010 12:49:16 -0400
I haven't read all the replies; in some languages the modulus function
is implemented differently for negative numbers. :)
Quoting Mike McGonagle <email@example.com>:
Well, here is the code that I am using, simplified to remove all the
order = 3
elements = order * order
size = elements * elements
for i = 0, (size - 1) do
r = math.floor(i / elements)
c = math.floor(i % elements)
b = math.floor(math.floor(math.floor(r / order) * order) +
math.floor(c / order))
br = math.floor(r % order)
bc = math.floor(c % order)
print(string.format("i:%f r: %f c: %f b:%f br:%f bc:%f", i, r, c,
b, br, bc))
I would think that because all of the numbers that I am working with,
all the numbers would come out positive, but many of the resulting
'0's come out as -0. While I have tried to preliminary test to see if
"0 == -0", I am just wondering if by chance this is due to some
This is something that has bothered me about Lua for a while now, as I
don't really understand what '-0' really is or means. I mean,
logically, I can understand that there is probably some use for it,
but for the things that I am doing, I see absolutely no reason for it,
as I am trying to work with nothing but positive integers.
On Sun, Sep 19, 2010 at 11:53 AM, Drake Wilson <firstname.lastname@example.org> wrote:
Quoth Mike McGonagle <email@example.com>, on 2010-09-19 11:19:59 -0400:
I have been doing some very simple things (mostly to get the integer
portion of a number) using math.floor, and it seems that sometimes the
function will return -0, when I am expecting a 0. Can someone please
explain why this happens? Is there a logical reason for this?
Why wouldn't they? Negative and positive zero are two floating-point
representations with the same closest real number.
Can you give a specific example?
---> Drake Wilson