Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zly wynik dodawania float

Ostatnio zmodyfikowano 2017-12-29 23:58
Autor Wiadomość
Kota
Temat założony przez niniejszego użytkownika
Zly wynik dodawania float
» 2017-12-29 22:59:20
Witam, chcialbym sie dowiedziec dlaczego operacje na typie float nie daja poprawnych wynikow. Czym jest spowodowany brak dokladnosci?
C/C++
#include <iostream>

using namespace std;

int main()
{
    float a;
    float b;
    float c;
    a = 1000;
    b = 0.002;
    c = a + b;
    cout << c << endl;
   
}
P-168227
nanoant20
» 2017-12-29 23:04:27
Liczby zmiennoprzecinkowe są liczbami przybliżonymi. Dla typu float liczba posiada tylko 8 cyfr znaczących

C/C++
#include <iomanip> // dla  setprecision

cout << setprecision( 3 ) << fixed;
cout << c << endl;
 poczytaj o manipulatorach
http://cpp0x.pl/kursy/Kurs-C++​/Obsluga-strumienia-cout/323
P-168228
jankowalski25
» 2017-12-29 23:58:02
Dla typu float liczba posiada tylko 8 cyfr znaczących
A nie sześć? Nie kojarzę, abym zetknął się z inną wartością wyrażenia
std::numeric_limits < float >::digits10
.

Przykład:
C/C++
#include <iostream>
#include <limits>

int main()
{
    std::cout << std::numeric_limits < float >::digits10 << '\n'
    << std::numeric_limits < double >::digits10 << '\n'
    << std::numeric_limits < long double >::digits10 << '\n';
}
Standardowe wyjście programu:
6
15
18
P-168232
« 1 »
  Strona 1 z 1