Jeff Schwab wrote: > "Real" math? Whatever you say. In EE college courses, professors often > use -0 to represent the limit of an asymptotic function that approaches > zero from the negative side, e.g. the voltage decay of a negatively > charged capacitor. The use has nothing to do with computers or IEEE > floats. > > Anyway, take it up with the OP; AFAIK, his question was academic, but > maybe he has an interesting use case. In fact, the -0.0 in programming is not very similar to the real math lim_{x->0-}(x). The simplest proof of this is the fact that -(1.0-1.0) gives -0.0, while after pushing the minus into the parenthesis we get -1.0+1.0 which gives 0.0. So I wouldn't say that -0.0 resembles the limes of capacitor charge, maybe only a bit. But if we wanted some more real math logic, we would need also +0.0 (different from 0.0), begin the result of 1.0/infinity. Then we would have -(+0.0) = -0.0, but -(0.0) = 0.0. But still it's only some approximation of "real math". Because of these inconsistency in IEEE (inconsistency with the real math or physics, I mean, not in IEEE itself), I'm not trying to use -0.0 as a real limes of something. The real use case is as follows (if anybody should be interested): A car can drive forward or reverse, but after it brakes to stop after, say, going forward, it needs to spend a short time staying still before it can start going backwards. This is a way of modelling the time needed to switch the gear from 1 and R (and the same applies to switching from R to 1). So now if I'm controlling the car, then I should be able to give it the desired velocity (the set point to a controller). So I decided that 0.0 means "don't move and be ready to go forward immediately (while I know there will be a moment's pause if I want to go backwards now)", while -0.0 means "don't move but stay switched to reverse, so that there's no time needed to start driving reverse (while a moment will be needed should I decide to go forward)". That's it, just one more bit of information pushed into the value of zero, which is exactly where I need it. TPR. -- Posted via http://www.ruby-forum.com/.