Re: NSNumber stringValue
Re: NSNumber stringValue
- Subject: Re: NSNumber stringValue
- From: David Rowland <email@hidden>
- Date: Sat, 12 Dec 2009 09:51:28 -0800
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.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden