Если вы пишите кросплатформенное ПО, то используйте платформонезависимые типы:
int32_t, uint16_t, float32_t и так далее (также есть чуть более хитрый unsigned тип std::size_t).
Это классический подход, которые используется много где. Даже если вы пишите ПО для 2-ух или 3-ех известных вам платформ, то будет хорошей практикой использовать подобные типы.
https://en.cppreference.com/w/cpp/header/stdfloat
float занимает 4 байта, double - 8 байт и на 32битной платформе и на 64битной: