Problem przy podstawie c++

0
#include <iostream>

using namespace std;

int main()
{
    float b=0;
    int s;
    cin>>b;
    s=b;
    cout<<b<<"-"<<s<<"=";
    b=b-s;
    cout<<b;
    return 0;
}

Mam problem przy części programu. Jak to jest możliwe, że zaokrągla mi to do wymyślonych liczb. Zadanie jest łatwe,ale tak jak na ss pokazuje wychodzą liczby, które są nieprawdziwe.

8

http://kaczus.ppa.pl/art/liczbyzmiennoprzecinkowe,19.html
Liczby zmiennoprzecinkowe nie mogą w pełni dokładnie reprezentować wszystkich liczb rzeczywistych, a ty na dodatek używasz najmniej precyzyjnego typu - float. Użyj double albo long double to wynik będzie znośniejszy.

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