On Dec 12, 2009, at 12:51 PM, David Rowland wrote:
> On Dec 12, 2009, at 9:32 AM, Ben Haller wrote:
> 
>>>> You should not compare floating point numbers for equality in most cases. 
>>>> This is true of any language on any platform.
>>> 
>>> Indeed, some floating-point numbers (such as the one represented by the 
>>> integer 0x7fc00000) will compare as not equal to themselves:
>> 
>> I think what the OP really wanted to know (and I'm interested in the answer 
>> too) is whether going out to the stringValue and back to the doubleValue is 
>> guaranteed to yield a float that is bitwise identical to the original float, 
>> or whether there is "drift" in the least significant bit or two due to the 
>> changes in representation.  Anyway, even if that's not the OP meant, that's 
>> what I'd like to ask.  :->
>> 
> 
> The problem with floating point is that the binary form almost always uses 
> binary arithmetic. That means that a number like 0.1 has an infinitely 
> repeating binary form. It is likely that converting the string "0.1" to a 
> float and then back will yield "0.1" because it will be rounded, but there 
> are marginal cases where you won't get what you put in.
> 
> Also, the string can carry more information than the float. "8.336" is 
> different from "8.336000". The latter implies that you know the precision to 
> six decimal places, the former does not.

If I understand the question, it's not about converting an arbitrary decimal 
string to a float, but specifically a string that was generated from a float in 
the first place.

As glenn pointed out, that string most certainly *can* be a string that can be 
converted back to a bitwise equivalent of the original float.  Ben's question 
was whether in practice it is guaranteed to be so, or whether stringValue uses 
a maximum number of decimal places that would lead to rounding error.  I can't 
tell from a quick look at the docs.

--Andy

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to