Ucinanie niepotrzebnych zer.

0

Jest jakiś łatwy sposób, aby wynik się wyświetlał bez niepotrzebnych zer.
np. 2 + 2 = 4.0000000
Nie chodzi mi tu o zmianę typu zmiennej, bo nie wiem co użytkownik poda.
Więc daje float, ale jak użytkownik poda całkowite to wyświetlają się te zera niepotrzebne.

0

Możesz użyć std::frexp do pobrania exponentu, potem sprawdzasz czy tenże jest większy od zera i jeśli tak wyświetlasz normalnie, a jak jest równy zero to w trakcie wyświetlania rzutujesz na int, wtedy wyświetli Ci się bez zer std::cout << static_cast<int>(num);.

0

if(fabs(x-(int)x)<1E-5) cout<<x<<" ma przynajmniej 5 zer po przecinku"<<endl;

0

@Adri:

mam przeczucie, że musisz zagadnienie przemyśleć do spodu, nawet jeśli pojawią się tu pomysły na wydruk, ale należy sie spodziewać masz więcej problemów (których być może sobie nie uświadamiasz jeszcze)

czego częścią jest to zagadnienie?

Gdyby robić top-pro akurat w C++, może bym użył https://en.cppreference.com/w/cpp/utility/variant

2

Troszkę jest irytujące, gdy ktoś się upiera przy swoim rozwiązaniu, mimo, że wskazano mu co jest źle i jak naprawić:
https://4programmers.net/Forum/C_i_C++/358589-wynik_calkowity_czy_rzeczywisty_jak_system_ma_odroznic?p=1824399#id1824399

Jak coś jest niezrozumiałe, to powinieneś ciągnąć tamten wątek, a nie zakładać nowy, który pozbawiony istotnych informacji (kodu) (na początku tak samo było z pierwotnym wątekiem).

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