Potrzebuje jakoś określić precyzje typu float, bo zamiast normalnego wyniku wyświetla się zapis w notacji naukowej.
Mój program wykonuje takie obliczenia, dla przykładu, obliczyłem to sam: '2 * 1024* 1024' = 2097152, a następnie wyświetla tą liczbę, tylko w tym przypadku program źle wyświetla liczbę(bo ta jest raczej największa) bez mnożenia przez 2 czyli przy wyniku 1048576, również wyświetlana jest notacja naukowa.
Sprawdzałem i float może mieć wartość ponad 105 ale na pewno nie więcej niż 106.
case bajty: return m_fRozmiarB;
zmienna m_fRozmiarB, przyjmuje zbyt dużą wartość, próbowałem ją rzutować na int:
case bajty: return static_cast<int>(m_fRozmiarB);
ale wynik jest dalej taki sam, utworzyłem również zmienną typu int i przypisałem jej wartość zmiennej m_fRozmiarB, ale również nie pomogło.