W przypadku kodu który umieściłeś, zbędne wydaje się "zmienianie typu zmiennej". Możesz po prostu deklarować z jako float. Możesz także obliczenie wykonać do innej zmiennej typu float.
float r = 2 * float(x) + float(y) / 3;
Możesz nawet uniknąć rzutowania poprzez wykonanie operacji arytmetycznych na typach float.
auto r = 2.0F * x + y / 3.0F;
W ostateczności, jeśli wynik jest Ci potrzebny jedynie do wyświetlenia, możesz obliczenie wykonać w trakcie wyprowadzania danych.
cout << "Zmienna z wynosi " << (2.0F * x + y / 3.0F) << endl;
Jeśli jednak masz rzeczywistą potrzebę (a w Twoim przypadku tak nie jest) umieszczenia kilku typów danych w zmiennej, możesz użyć:
1. Unii: https://en.cppreference.com/w/cpp/language/union
2. Variant: https://en.cppreference.com/w/cpp/utility/variant
3. Any: https://en.cppreference.com/w/cpp/utility/any
4. Optional: https://en.cppreference.com/w/cpp/utility/optional (w określonych przypadkach)