I have a question about Floating point numbers and mathematical operators

```
#include <iostream>;
int main() {
double x = 10;
double y = 5;
double z;
z = (x + 10) / (3 * y) ; //Why can't the type of x/y/z be int?
std::cout << z;
return 0;
}
```

I have a question about Floating point numbers and mathematical operators

```
#include <iostream>;
int main() {
double x = 10;
double y = 5;
double z;
z = (x + 10) / (3 * y) ; //Why can't the type of x/y/z be int?
std::cout << z;
return 0;
}
```

x and y can be int

but the z = 3.333

so z should always be double

Well `double`

is for declaring numbers with decimal points or predicting they might have a decimal point and in this exercise Mosh tells us that the value of z is 1.333, so we need to declare all their types to double, well if you donâ€™t like it then you can set y to integer and it wonâ€™t make a difference.

A tip for you after seeing your code:

It is better as a programmer to simplify and try to make your code as short and simple as possible so in this case you can put the equation of z directly where you declared the z double, so you can basically do this:

```
#include <iostream>
int main() {
double x = 10;
double y = 5;
double z = (x + 10) / (3 * y);
std::cout << z;
return 0;
}
```

I am afraid that is wrong information, if you are calculating between 2 variables that are set to an integer value the answer cannot be output as a double or float, so you need to keep in mind that at least two of the valuesâ€™ meaning x and z or y and z (that is personal preference) should be set to float or double types.

Well done! Thank you so much!

1 Like

Youâ€™re Welcome Brother `:)`