[C++] Błędny odczyt z pliku liczb typu double

Odczytuję w pętli liczby typu double z pliku i zapisuję do tablicy w takie sposób:

ifstream bla("plik.dat", ios::out );

...

bla>>liczba;

tablica[i][0]=liczba;

Problem w tym, że gdy liczba wygląda np. tak 189.02 to do tablicy wpisuje mi 189.0000… a potem tą dwójkę traktuje jako następną liczbę i wpisuje mi do nastopnej komórki 2

Co zrobić, żeby wpisywało mi liczby poprawnie?

ustaw odpowiednio:

setlocale()