Zaokraglanie, dziwny problem

Zaokraglanie, dziwny problem
0

mam zmienną double, która po operacji ma wartość 306.01967999999999

a na std::cout wychodzi 306.02

co można poradzić, aby wyświetlany wynik był precyzyjniejszy?

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:20 dni
0
Kopiuj
cout.setf(ios::fixed);
cout<<setw(5)<<zmienna;

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
0
_13th_Dragon napisał(a):
Kopiuj
cout.setf(ios::fixed);
cout<<setw(5)<<zmienna;

dzięki za odpowiedź, ale nie o to mi chodzi - czy można jakoś tak coś zrobić z liczbą, żeby nie trzeba było używać formatowania strumienia?

_13th_Dragon
Zapisz mi 1/3 w postaci ułamku dziesiętnego ;P
unikalna_nazwa
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 10 lat
0

możesz ją zaokrąglić, ale tak jest lepiej

co można poradzić, aby wyświetlany wynik był precyzyjniejszy?

akurat liczba 306.01967999999999 jest bardziej precyzyjna niż 306.02 ...

// a sorry nie zrozumiałem tematu - chcesz jednak na odwrót :P


Pół giga extra na dropboxie? Pół giga extra na dropboxie! Tyle wygrać! >>Klik here<<
edytowany 1x, ostatnio: unikalna_nazwa
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:20 dni
0

Nie musisz nic robić z liczbą: http://ideone.com/eLW77E
Liczby 0.1 i tak nie da się zapisać dokładnie w systemie binarnym więc nie da rady cokolwiek robić z liczbą.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.