varr: real;
r := 5.0;

The value 5.0 is a number represented as a decimal fraction (has an integer and a fractional part). In computer science, such numbers are called real
Real number is a number that has an integer part and a fractional part. The integer and fractional parts are separated from each other by a dot, not by a comma as in mathematics.
Even if the fractional part of the number is zero, as in the \(r\) variable in the example, the translator will still create a real variable in memory. The dot is, as it were, a signal for the translator that it is necessary to create a real variable. 

Very large and very small numbers  are written using "floating point" (in the so-called scientific format).  
In scientific format, a number is represented as mantissa(significant part of the number) and exponent. When notated, the mantissa and exponent are separated from each other by the letter e (denoting 10 to some extent). 
For example, you can store the value of the charge of an electron ( \(1.60217662 \times 10^{-19}\) C) in a variable, writing in the following form
var E1: real
El := 1.60217662e-19 #for a positive order, the + sign can be omitted
Almost all real numbers cannot be stored in computer memory with perfect accuracy, since a limited number of bits are allocated for their storage. Therefore, when calculating with real numbers, errors associated with the inaccuracy of the representation accumulate. Moreover, the less space allocated, the greater this error will be. In order to reduce the error in Pascal, the double type is used, which stores a real number in memory with greater precision (occupies 8 bytes in memory, while the real - 6 bytes)

Enter

You can enter several real variables from the input stream and write them to variables in the standard way:
var x, y: real;
read(x, y);
The first number goes into the \(x\) variable, the second goes into the \(y\)

Output

When displaying real numbers, scientific format is selected by default.
You can customize the output as needed according to the condition of the problem. After the number, a colon indicates the total number of positions that will be allocated to the number, and then another colon - the number of positions allocated to the fractional part. If after the first colon there is a number that is less than the sum of the number of characters in the integer part of the number, the space allotted for the dot separating the fractional and integer parts (1 character is allocated for this) and the number of characters allotted for the fractional part, then simply a number with given the allotted number of characters to the fractional part. Otherwise, additional spaces are written before the number. Therefore, if you do not know how many characters the integer part will take you, you can simply write 0 after the first colon, and then the whole number will be displayed without spaces before it.
Example:
real x := 1.0/6;
writeln(x:12:9); // set to display 9 decimal places and a total of 12 decimal places per number, taking into account the separating point
The screen will display
_0.166666672

When working with real numbers, you can use the already familiar math module, which contains a large number of built-in functions. 
When solving problems, it is often necessary to round real numbers to the nearest integer values. There are three functions for this.

REMEMBER
Trunc(x) function - cuts off the fractional part \(x\) and returns an integer value.
2 Floor(x) -  returns the largest integer less than or equal to \(x\) (round down)
3 Ceil(x) function -  returns the smallest integer greater than or equal to \(x\) (round up)

Here are the most useful functions. Some of them are built into Pascal, while the rest are contained in the math module.
Function Description
Rounding
round(x)
embedded
Rounds a number to the nearest integer. If the fractional part of the number is 0.5, then the number is rounded to the nearest whole number. 
trunc(x)
embedded
Discards the fractional part
floor(x)
in math
Rounds a number down ("floor"), thus floor(1.5) == 1floor(-1.5) ==  ;-2
ceil(x)
in math
Rounds a number up ("ceiling"), while ceil(1.5) == 2ceil(-1.5) ==  ;-1
abs(x)
embedded
Modulo (absolute value).
Roots, logarithms
sqrt(x)
embedded
Square root. Usage: y := sqrt(x)
power(x, y)
in math
Raises x to the y power. \(x^y\)
log2(x)
in math
Log base 2.
lnxp1(x)
in math
The natural logarithm of (x + 1).
Trigonometry
sin(x)
embedded
Sine of an angle specified in radians
cos(x)
embedded
Cosine of an angle specified in radians
tan(x)
in math
The tangent of an angle specified in radians
arcsin(x)
in math
Arcsine, returns value in radians
arccos(x)
in math
Arc cosine, returns value in radians
arctan(x)
embedded
Arctangent, returns value in radians
arctan2(y, x) Polar angle (in radians) of the (x, y) point.