Objective-C Float, Double, Decimal

April 12, 2009 § 3 Comments

Float – 7 digits (32 bit)

Double-15-16 digits (64 bit)

Decimal -28-29 significant digits (128 bit)

Decimals have much higher precession and usually used within financial applications that require a high degree of accuracy. Decimals are much slower (up to 20X times in some tests) than a double\float.

Decimals and Floats/Doubles cannot be compared without a cast whereas Floats and Doubles can. Decimals also allow the encoding or trailing zeros.

Decimal doesn’t use IEEE floating point representation. It uses a decimal representation that is 100% accurate by doing decimal based math rather than base 2 based math. You can trust math to within the accuracy of decimal precision whereas you can’t fully trust floats or doubles unless you are very careful.

float is a single precision (32 bit) floating point data type as defined by IEEE 754 (it is used mostly in graphic libraries).

double is a double precision (64 bit) floating point data type as defined by IEEE 754 (probably the most normally used data type for real values).

decimal is a 128-bit floating point data type, it should be used where precision is of extreme importance (monetary calculations).


§ 3 Responses to Objective-C Float, Double, Decimal

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

What’s this?

You are currently reading Objective-C Float, Double, Decimal at Web Builders.


%d bloggers like this: