Skocz do zawartości

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


Recommended Posts

Napisano

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)

 

  • 2 weeks later...
Napisano

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;

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...