Forum » Programiranje » Število decimalk???
Število decimalk???
ta_pravi ::
Pozdravlejni!
Ima kdo kakšno idejo, kako bi v C ju preko argumenta določil število decimalnih mest pri izpisu števila???
LP
Ima kdo kakšno idejo, kako bi v C ju preko argumenta določil število decimalnih mest pri izpisu števila???
LP
ta_pravi
Ch4N93 ::
poskusi s "ftoa" oz. "ftoe"
void ftoa(float n, unsigned char decimals, char *str)
converts the floating point number n to characters in string str.
The number is represented with a specified number of decimals.
void ftoe(float n, unsigned char decimals, char *str)
converts the floating point number n to characters in string str.
The number is represented as a mantissa with a specified number of decimals and an integer power of 10 exponent (e.g. 12.35e-5).
Ni nam lahko...
Jean-Paul ::
To zmore tudi družina printf funkcij:
primer:
Preberi si dokumentacijo za printf (npr. man 3 printf)
primer:
printf("%.*f\n", 2, 42343.5264523);P.S.
Preberi si dokumentacijo za printf (npr. man 3 printf)
Neumann ::
Lep pozdrav,
sposodil bi si temo, ker imam problem z decimalnimi števili. Programiram v pythonu, skupaj z qt designerjem.
1.vprašanje:
Rad bi naredil tako, da ko bi uporabnik vpisal število (npr. 123456), bi program sam postavil vejico na drugo mesto, torej bi ta številka pomenila 12,3456. Torej, kako narediti, da neglede na to kakšno število uporabnik napiše, število prikaže oz. uporabi kot 2 mesti celega dela, ostalo pa decimalni del? Upam da sem razumljivo napisal.
2.vprašanje:
ko naredim program, recimo kalkulator v pythonu, gui pa qt designer, ko želim izpisati nekaj oz. nek rezultat napišem tako:
dlg.izpis.setText("rezultat je %.2f " %rezultat) - tukaj je vse lepo in prav.
kako pa narediti če imamo več argumentov, če želim stavek nadaljevati..naprimer
dlg.izpis.setText("rezultat je %.2f " %rezultat "€!" ...) ta naslednji argument € ga že moti, kot da je preveč argumentov??
Če ima kdo kakšno idejo bi jo bil zelo vesel.
sposodil bi si temo, ker imam problem z decimalnimi števili. Programiram v pythonu, skupaj z qt designerjem.
1.vprašanje:
Rad bi naredil tako, da ko bi uporabnik vpisal število (npr. 123456), bi program sam postavil vejico na drugo mesto, torej bi ta številka pomenila 12,3456. Torej, kako narediti, da neglede na to kakšno število uporabnik napiše, število prikaže oz. uporabi kot 2 mesti celega dela, ostalo pa decimalni del? Upam da sem razumljivo napisal.
2.vprašanje:
ko naredim program, recimo kalkulator v pythonu, gui pa qt designer, ko želim izpisati nekaj oz. nek rezultat napišem tako:
dlg.izpis.setText("rezultat je %.2f " %rezultat) - tukaj je vse lepo in prav.
kako pa narediti če imamo več argumentov, če želim stavek nadaljevati..naprimer
dlg.izpis.setText("rezultat je %.2f " %rezultat "€!" ...) ta naslednji argument € ga že moti, kot da je preveč argumentov??
Če ima kdo kakšno idejo bi jo bil zelo vesel.
FrEaKmAn ::
1. iz glave, mogoče 123456/10**((len(123456)-2).. samo pazi an robne pogoje ...in verjetno obstaja kakšna lepša rešitev
2. v tvojem primeru moraš imeti enako število "mest" v stringu ter enako število parametrov. V tvojem primer ima 1 mesto in 2 parametra. rešitev je lahko
ali
2. v tvojem primeru moraš imeti enako število "mest" v stringu ter enako število parametrov. V tvojem primer ima 1 mesto in 2 parametra. rešitev je lahko
dlg.izpis.setText("rezultat je %.2f €" % rezultat)
ali
dlg.izpis.setText("rezultat je %.2f %s" % (rezultat, "€!"))
Zgodovina sprememb…
- spremenil: FrEaKmAn ()
P4ajo ::
Sicer sem povsem začetnik pri programiranju, ampak za prvo vprašanje bi mogoče lahko naredil takole... (sem pa prepričan da obstajajo enostavnejši in boljši načini (in se opravičujem če so napake, ampak nisem že nekaj mesece nič delal)
števila=str(input) # tukaj pač uporabnik vnese številko kot string
seznam_števil=list(števila) # tukaj se vnesena številka iz stringa pretvori v seznam)
# (vsak znak, je svoj element v seznamu)
seznam_števil_l=[] # ustvariš nov seznam
seznam_števil_l.append(seznam_števil[1]) # v nov seznam daš prva dva elementa iz
# seznama števk v vnesenemu številu
seznam_števil_l.append(seznam_števil[2])
seznam_števil_l.append(",") # v nov seznam dodaj vejico
for x in range (3, (len(seznam_števil)+1)): # zanka ki doda v ta nov seznam še ostale
seznam_števil_l.append(x) # števke, ki pridejo za vejico
seznam_števil_k=join.(seznam_števil_l) # nov seznam se pretvori v string
seznam_števil_k=float(seznam_števil_k) # decimalno število se pretvori v float
števila=str(input) # tukaj pač uporabnik vnese številko kot string
seznam_števil=list(števila) # tukaj se vnesena številka iz stringa pretvori v seznam)
# (vsak znak, je svoj element v seznamu)
seznam_števil_l=[] # ustvariš nov seznam
seznam_števil_l.append(seznam_števil[1]) # v nov seznam daš prva dva elementa iz
# seznama števk v vnesenemu številu
seznam_števil_l.append(seznam_števil[2])
seznam_števil_l.append(",") # v nov seznam dodaj vejico
for x in range (3, (len(seznam_števil)+1)): # zanka ki doda v ta nov seznam še ostale
seznam_števil_l.append(x) # števke, ki pridejo za vejico
seznam_števil_k=join.(seznam_števil_l) # nov seznam se pretvori v string
seznam_števil_k=float(seznam_števil_k) # decimalno število se pretvori v float
donkihod ::
@Neumann,
lahk pa pretvoriš v string pa potem nazaj v float, če nucaš za nadalnje računanje.
lahk pa pretvoriš v string pa potem nazaj v float, če nucaš za nadalnje računanje.
stevilo = input() stevilo = float(stevilo[:2] + "." + stevilo[2:])
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18032 (8780) | black ice |
» | Programiranje v pythonuOddelek: Programiranje | 2027 (1385) | Sony-Tech |
» | PythonOddelek: Programiranje | 3038 (1724) | d_DJ |
» | [C++] Pretvorba iz int v char *Oddelek: Programiranje | 2963 (2339) | Gundolf |
» | [C++][Naloga] Tekstovne datoteke, realna številaOddelek: Programiranje | 4019 (3635) | Gundolf |