Forum » Programiranje » [C++] zaokroževanje števil
[C++] zaokroževanje števil
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
Ni nam lahko!
- spremenilo: snow ()
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
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.
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...
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 ? =)
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 ()
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 ()
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....
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 | 984 (900) | BigWhale |
» | [Java] Kako filtrirati, katera števila lahko vpišeš?Oddelek: Programiranje | 2079 (1781) | fiction |
» | [Naloga] Eulerjevo številoOddelek: Programiranje | 3102 (2454) | gani-med |
» | kako definirtati prasteviloOddelek: Programiranje | 3785 (3590) | ooux |
» | Pac sm butl !!!!!Oddelek: Programiranje | 1380 (1022) | Phil |