Numeric class in MATLAB includes signed and unsigned integers, single-precision floating-point numbers, and double-precision floating-point numbers. Generally, MATLAB stores all numeric values as double-precision floating-point.Floating Point Numbers in MATLAB are stored in two forms:
- Single Precision Floating point
- Double Precision Floating point
MATLAB keeps the double precision floating point as the default floating point representation however, it can be changed to single by a very simple function.
Single Precision Floating Point:
The single precision floating point number requires 32 bits for representation by the standards of IEE®. These 32 bits are formatted as following.
| Bit Number/Range | Bits' Functionality |
|---|---|
| 31 |
Sign: - 0 for positive. 1 for negative. |
| 30-23 | exponent part; biased by 127 |
| 22-0 | mantissa of the number; 1.f |
Where exponent and mantissa are the components of exponential/scientific notation of a number.
Double Precision Floating Point:
The double precision floating point number requires 64 bits for representation by the standards of IEE®. These 64 bits are formatted as following.
| Bit Number/Range | Bits' Functionality |
|---|---|
| 63 |
Sign: - 0 for positive. 1 for negative. |
| 62-52 | exponent part; biased by 1023 |
| 51-0 | mantissa of the number; 1.f |
Creating Single Floating Point and Double Floating Point in MATLAB:
Single Precision:
As MATLAB creates double precision floating point number by default, we use single() function to create single precision floating point number.
Example 1:
% MATLAB code for creating single precision floating point
num = single(123.45);
% verifying the attributes of num by whose function
whose("num")
Output:

Double Precision:
Double precision floating point numbers can be created by ordinary assignment or using the double function.
Example 2:
% MATLAB code for creating number by double function
num = double(123.45);
% Creating number by ordinary assignment
num_assignment = 678.9;
% Checking the attributes of both variables
whose("num","num_assignment")
Output:

As it can be seen, both num and num_assignment variables have same attributes of double type.