Dokładność do x cyfr po przecinku

0

Witam,

jak w c++ zrobić dokładność do x liczb po przecinku? wszędzie znajduję rozwiązanie setprecision(), ale to chyba ogólnie ustawia długość liczb? w sensie że jak jest liczba dajmy na to
float a = 333.55555
dodam kod
cout.precision(3);
cout<<a;
to wyświetla mi 333, a ja chciałbym żeby mi wyświetlało 333.555
i nie chodzi mi o to, żeby to tylko dla tej liczby było, chciałbym elastyczne rozwiązanie, które każdą liczbę zmiennoprzecinkową wyświetli mi z dokładnością do 3 cyfr po przecinku

1

Możesz przesunąć przecinek o określoną ilość miejsc i później zaokrąglić do całości i przenieść przecinek na pierwotne miejsce np:
333,55555 * 100 = 33355,555
round(33355,55) = 33356 /zamiast rounda mozesz rzutować na integera i wtedy po prostu obetnie ci tą część
33356 / 100,00 = 333,56

1

Można też przed a dać fixed (cout<<fixed<<a;) i wyświetli 333,556

0

Jak ma zaokrąglać (w tym wypadku do 333.556) to już lepiej raz ustawić:

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
    float a = 333.55555;
    cout << fixed;
    cout << setprecision(3);
    cout << a;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1