Not all numbers are integers. Therefore, Objective-C lets you define floating-point values—numbers with a fractional portion. There are two basic types—float and double.

Floating-point values do not follow the rules of integer division—that is, dividing by floating-point values produces floating-point results.

# Type float

In certain programming languages (Java comes to mind) the float type is almost never used. In Objective-C, it is the more commonly used of the two—both for practical and memory reasons.

A floating point number must contain a decimal portion, but you can omit digits before *or* after the decimal point—obviously, not both. The entire number ca be prefixed by a negative sign. Therefore, 3., 1.8, .295, and -.59 are all valid floating point numbers. To display floats in an NSLog call, use %f.

## Scientific Notation

As you may recall from a high-school math class, scientific notation is a method of writing absurdly large or small numbers. It takes the form 5.925×10^{2}, where the general notation is of a floating-point value followed by a multiplication, a number (generally a power of 10), and an exponent. This number is written in code with the form 5.925e4. The *e*, formally known as the *mantissa*, can be written as a capital or lowercase. The mantissa can be either positive or negative; a negative value, such as 2.25e-3, would correspond to a value of 2.25×10^{-3}, or 0.00225.

To display scientific notation, use %e. Alternatively, you can use %g to have NSLog decide whether to display the usual value or the scientific notation—if the exponent is less than -4 or greater than 5, the scientific notation is used; otherwise, the standard floating point notation is used.

# Type double

A double value is a more precise float value—the former stores twice as many digits, and on most systems it uses 64 bits.

Like Java, all floating point *constants* in Objective-C are double. To force a float, append either f or F to the end of the floating point value. Unlike Java, however, floats are used as a general data type for floating-point variables, due to the fact that they require less memory. The distinction is that of *constants* versus that of variables.

The same format specifiers apply to doubles, as well as scientific notation.

## bet365

/ October 3, 2010Good day!This was a really brilliant subject!

I come from china, I was luck to come cross your subject in bing

Also I get a lot in your website really thank your very much i will come again

## inspire48

/ October 3, 2010Thanks for dropping by! It’s good to know that people are appreciating my work. And that I’m showing up in Bing now.

Spread the word!

Thanks!

## Rajmohan

/ September 15, 2012Another typo mate.

1. In scientific notation

5.925×10^2 is denoted as 5.925e4

2.In Type float

there is an ‘n’ missing in “can”.

Again thank you for writing such a clear tutorial.

If you find it irritating that your every little (ignorable) spelling mistake is being pointed out, please feel free to say so.