• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Zaokrąglanie liczb [C++]

0 głosów
36,161 wizyt
pytanie zadane 17 lipca 2016 w C i C++ przez BanditPlayGame Użytkownik (680 p.)
zamknięte 30 maja 2017 przez BanditPlayGame
Mam taki problem. Potrzebuję jakiejś funkcji czy czegoś podobnego, która zaokrągla liczby. Jest mi potrzebna taka co zaokrągla na "na stałe". Nie wyświetla, ale mogę tej zaokrąglonej liczby użyć do jakiegoś działania matematycznego. Ważne jest także to, że musi ona zaokrąglać do dwóch miejsc po przecinku.

 

PS: Przekopałem internet to co znalazłem mi nie odpowiadało lub tego nie rozumiałem :)
komentarz zamknięcia: Wszystko działa

2 odpowiedzi

+8 głosów
odpowiedź 17 lipca 2016 przez manjaro Nałogowiec (37,410 p.)
wybrane 17 lipca 2016 przez BanditPlayGame
 
Najlepsza
#include <iostream>
#include <math.h>

using namespace std;
float a1;


float zaokraglij(float a)  {
    return round(a*100)/100;
}

int main()
{
cout << "Podaj a: ";
cin >> a1 ;
cout << "Liczba po zaokrągleniu: " << zaokraglij(a1) << endl;

return 0;
}

 

komentarz 17 lipca 2016 przez BanditPlayGame Użytkownik (680 p.)
Świetnie wszystko działa tylko nie rozumiem zasady działania round(a*100)/100;

Widziałem gdzieś tę funkcję tylko jej nie zrozumiałem. Proszę o wytłumaczenie.
komentarz 17 lipca 2016 przez manjaro Nałogowiec (37,410 p.)
Przykład

Masz liczbę 1,5678

Mnożysz x 100  co daje 156,78

Teraz zaokrąglasz funkcją round co daje 157

I dzielisz z powrotem przez 100 i masz wynik 1,57
komentarz 17 lipca 2016 przez BanditPlayGame Użytkownik (680 p.)
Dziękuje bardzo za pomoc :)
komentarz 17 lipca 2016 przez manjaro Nałogowiec (37,410 p.)
Nie ma sprawy.

Tym sposobem możesz zaokrąglać do dowolnej liczby po przecinku. Przykładowo chcesz do 3 miejsc po przecinku to mnożysz a później dzielisz przez 1000.
komentarz 17 lipca 2016 przez BanditPlayGame Użytkownik (680 p.)
Znalazłem mały problem, albo ja coś robię źle. Niestety to co zrobi ta własna funkcja to się nie zapisuje. Wyświetla się i koniec. Jest mi ta liczba potrzebna do innych wyliczeń.
komentarz 17 lipca 2016 przez manjaro Nałogowiec (37,410 p.)

Bo w tym programie było tylko wyświetlenie dla przykładu.

A jak chcesz jej używać to przypisujesz ją do jakiejś zmiennej
 

float liczba_zaokraglona = zaokraglij(a1);



Dajesz to gdzieś w środku programu main()

komentarz 18 lipca 2016 przez BanditPlayGame Użytkownik (680 p.)
Na razie nie zamykam pytania i jeszcze to trochę po testuje. Na razie jest wszystko ok :)
komentarz 22 stycznia 2023 przez Jerzy Użytkownik (950 p.)

@manjaro, 
A jak chciałbym zaokrąglić w dół?

 

0 głosów
odpowiedź 17 lipca 2016 przez niezalogowany
daj przykład, bo jak przekopałeś internet i nie znalazłeś odpowiedzi to masz naprawdę wymagania :)
komentarz 17 lipca 2016 przez BanditPlayGame Użytkownik (680 p.)
Przykład. Czego przykład??
komentarz 17 lipca 2016 przez niezalogowany
tego zaokrąglenia
komentarz 17 lipca 2016 przez BanditPlayGame Użytkownik (680 p.)
program w którym potrzebuję to zaokrąglanie?

Podobne pytania

0 głosów
1 odpowiedź 1,372 wizyt
+1 głos
2 odpowiedzi 40,145 wizyt
pytanie zadane 26 września 2015 w Java przez przemko06 Początkujący (370 p.)
+1 głos
1 odpowiedź 4,761 wizyt
pytanie zadane 10 czerwca 2017 w C i C++ przez Adwormix Nowicjusz (230 p.)

93,667 zapytań

142,591 odpowiedzi

323,135 komentarzy

63,193 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...