Functions have types. A type can be anything from int to double to string to an abstract object that you created. These function should ( or must ) return something as a result. In contrast, a function whose type is "void" mustn't return anything, and in fact the compiler will complain if you try to make it so.
absence of type, meaning no return should be made.
Ignore the "floating-point" for the moment.
floating-point number, capable of integer, fractional and exponential values
integer = ( 0, 1, 2, ... ) and their negatives
fractional = ( 1/2, 1/3, 1/4, 1/5, ... ) and their negatives
exponential = ( 10¹, 10², 10³, ...) and their negatives, taking 10 as base.
A "double" can be any possible combination between the above ( if it's precision allows it of course ).
Ignore and ignore, you'll learn of these soon enough.
accurate as "float", but on x86 systems is always at least double that precision.
at least 16-bits, but in many modern systems it's 32-bits in size (size of what?
A variable is something that it's value can be changed, a constant is the opposite. A function is a set of "canned" instructions that can be executed, as a separate unit, from anywhere ( well, kinda ). Casting you'll learn about that too as you move on, it basically convert one type into another...
variables, constants, functions or cast between types...