Zaokraglanie, dziwny problem

Zaokraglanie, dziwny problem
  • Rejestracja: dni
  • Ostatnio: dni
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: dni
  • Ostatnio: dni
0
Kopiuj
cout.setf(ios::fixed);
cout<<setw(5)<<zmienna;
  • Rejestracja: dni
  • Ostatnio: dni
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?

unikalna_nazwa
  • Rejestracja: dni
  • Ostatnio: dni
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

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: 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ą.

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.