Skocz do zawartości

C++ zamiana ciągu cyfr na ułamek


mo

Recommended Posts

Witam Wszystkich, mam taki problem w C++. Muszę zamienić ciąg cyfr na (liczbę) ułamek dziesiętny. Czyli podaję cyfry, które mają być po przecinku a dostaję ułamek (liczbę) mniejszy od 1. Przykłady:

wejście: 089 wyjście: 0.089 (float)
wejście: 123 wyjście: 0.123 (float)
wejście: 0007 wyjście: 0.0007 (float)

 

Link do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

jeżeli chodzi o sam algorytm to wystarczy mnożyć tą liczbę co wpisywałeś/aś razy -10*ilosc_cyfr w danym ciągu znaków.

Jeżeli można by było korzystać z c++11, i wejściową daną mógłby być string to sprawa prosta, jest do tego funkcja string to int - stoi( string ) --> http://en.cppreference.com/w/cpp/string/basic_string/stol. Do tego przyda się funkcja string.length(), która zwróci ilość_cyfr w stringu. Reasumując:

cin >> input;
float output=float(stoi(input)); // rzutowanie z inta na float
for(int i =1; i>=input.length(); i++)
output*=-10;
cout << output;
Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...