Forum » Programiranje » [C++] zaokroževanje števil
[C++] zaokroževanje števil
![](https://static.slo-tech.com/stili/avatar_gray.gif)
M4T3J ::
Katere funkcije uporabljate za zaokroževanje? Ker sem namrec sicer nekaj najdel samo ne vem točno kako bi uporabil to funkcijo(round)?Če bi bil kdo tak dober pa podal kakšen primer
![:))](https://static.slo-tech.com/smeski/icon_lol.gif)
Ni nam lahko!
- spremenilo: snow ()
![](https://static.slo-tech.com/stili/avatar.gif)
snow ::
1. Drugič prosim, če napišeš ime teme v skladu z PREBERI ME: označevanje topicov v oddelku programiranje!
2. Google: C++ round, najde med drugim: http://www.codeproject.com/cpp/floatutils.asp.
2. Google: C++ round, najde med drugim: http://www.codeproject.com/cpp/floatutils.asp.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
![](https://static.slo-tech.com/stili/bel_non_grata.png)
Matako ::
Hm, vprašanje ni čisto brezveze. Standardna (ajd!) mat. knjižnica (math.h) recimo sploh *nima* round(). Ima pa ceil() in floor(), ki zaokrožita na celo število navzgor ali navzdol. Iz tega lahko sestaviš round().
/\/\.K.
![](https://static.slo-tech.com/stili/avatar.gif)
BigWhale ::
Nima?
$ man round
NAME
round, roundf, roundl - round to nearest integer, away from zero
SYNOPSIS
#include <math.h>
double round(double x);
float roundf(float x);
long double roundl(long double x);
...
CONFORMING TO
C99.
Nevem no...
$ man round
NAME
round, roundf, roundl - round to nearest integer, away from zero
SYNOPSIS
#include <math.h>
double round(double x);
float roundf(float x);
long double roundl(long double x);
...
CONFORMING TO
C99.
Nevem no...
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Quikee ::
BigWhale:
>man round
entry not found
>gedit /usr/include/math.h
search "round" -> phrase not found.
Kje si ga te ti našel ? =)
>man round
entry not found
>gedit /usr/include/math.h
search "round" -> phrase not found.
Kje si ga te ti našel ? =)
![](https://static.slo-tech.com/stili/avatar.gif)
snow ::
cmath - tukaj ne vidim round-a.
Poleg tega, pa se pri roundu ponavadi smatra, da izbereš število decimalk na katere zaokrožiš rezultat.
Če hočeš zaokroževanje in prikaz na določeno število mest uporabiš iomanip:
edit: Hmph... tole zgornje je na koliko cifer hočeš prikazovat/zaokroževat, ne na koliko decimalk :|
Poleg tega, pa se pri roundu ponavadi smatra, da izbereš število decimalk na katere zaokrožiš rezultat.
Če hočeš zaokroževanje in prikaz na določeno število mest uporabiš iomanip:
#include <iomanip> using namespace std; void test() { float a = 1.005; cout << fixed << setprecision(3) << a << endl; }
edit: Hmph... tole zgornje je na koliko cifer hočeš prikazovat/zaokroževat, ne na koliko decimalk :|
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Zgodovina sprememb…
- spremenilo: snow ()
![](https://static.slo-tech.com/stili/bel_non_grata.png)
Matako ::
@BigWhale, pa saj ti lepo piše v tekstu, k isi ga kopiral "conforming to C99". Saj zato sem pa napisal "ajd" za standardno math.h knjižnico ;) - round() in prijatelji spadajo pod C99 specifikacijo, čeprav je čisto možno, da se ta math pojavlja v okoljih, ki sicer niso po C99. Zakaj pa ne.
Je pa tako, da se ne moreš na to zanesti, ker še vedno veliko C/C++ okolij in platform zna ne imeti te fukcije v math.h, zato je verjetno najbolje, da si narediš kak makro za te primere...
Je pa tako, da se ne moreš na to zanesti, ker še vedno veliko C/C++ okolij in platform zna ne imeti te fukcije v math.h, zato je verjetno najbolje, da si narediš kak makro za te primere...
/\/\.K.
Zgodovina sprememb…
- spremenil: Matako ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
zhigatsey ::
// roundTo inline double roundTo(double num, int digits) { int mul = (int)pow( (double)10, (double)digits ); num *= mul; if (num > 0) num += 0.5; else num -= 0.5; num = (int)num; num /= mul; return num; }
Klele je funkcija, za zaokroževanje... Če je kakšna pomankljivost, oz.
če se da narediti na boljši način bodo pa drugi povedal.... Tole je samo moj prispevek....
Ne sme manjkati math....
![](https://static.slo-tech.com/stili/avatar_gray.gif)
worxer ::
Men je na enostavn način ratal nardit.
iStevilo = dStevilo + 0.5
Zgodovina sprememb…
- spremenil: worxer ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | gcc + math.h + -lm problemOddelek: Programiranje | 1005 (921) | BigWhale |
» | [Java] Kako filtrirati, katera števila lahko vpišeš?Oddelek: Programiranje | 2106 (1808) | fiction |
» | [Naloga] Eulerjevo številoOddelek: Programiranje | 3122 (2474) | gani-med |
» | kako definirtati prasteviloOddelek: Programiranje | 3806 (3611) | ooux |
» | Pac sm butl !!!!!Oddelek: Programiranje | 1398 (1040) | Phil |