We use different types, because the kinds of number we want to hold will vary depending on the problem we are solving. For example, if I want to display a letter or digit (which we will do later) I need a variable which can hold a value to represent a particular character. The number of different possible characters is limited to 128 (if we are using the standard character notation) so I only need to hold this range of different values.

If I want to calculate the average of a number of readings I will need a variable which can hold a number with a fractional part to a reasonable precision. The average may be much bigger (or smaller) than 128 so I will need a type of variable which can handle this. The C programming language provides a variable type called float which is used to work with floating point values.

Floating point means that we can have a decimal point which will move (float) to the appropriate place depending on the value we want to hold. In this way we can hold a very wide range of possible values to the best precision.

The PICmicro however does not support floating point variables because it doesn't have sufficient processing power or internal space to do them justice. While this could be regarded as a limitation, the things which you do with a PICmicro would probably not include floating point work.

The C keyword which we use to declare integer variables is int.

    int sheep ; /* counter for sheep */

C also provides us with additional variable types which we can use when appropriate.