• 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++]

Cloud VPS
0 głosów
34,893 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,390 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,390 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,390 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,390 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,317 wizyt
+1 głos
2 odpowiedzi 39,525 wizyt
pytanie zadane 26 września 2015 w Java przez przemko06 Początkujący (370 p.)
+1 głos
1 odpowiedź 4,676 wizyt
pytanie zadane 10 czerwca 2017 w C i C++ przez Adwormix Nowicjusz (230 p.)

93,482 zapytań

142,414 odpowiedzi

322,761 komentarzy

62,894 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

Kursy INF.02 i INF.03
...