Avatar billede neocron Nybegynder
05. december 2004 - 22:45 Der er 19 kommentarer og
1 løsning

Float - antal decimaler?

Hej. Jeg har et par spørgsmål om float og afrunding af denne. Jeg får genereret en værdi, f.eks. 0,0361328, og den vil jeg gerne have rundet ned til f.eks. 0,36. Hvorledes gør jeg det (jeg bruger den i sammenhæng med en cout, så jeg er ligesom lidt afskåret fra at bruge en printf med noget %-halløj)

For at summere op, skal jeg have denne linie til at producere et decimal tal med 2 tal efter kommaet (x,yy) så der f.eks. står "Value: 0,23" fremfor "Value: 0,0361328" :)
cout << "Value: " << floor(minVar);

--
Et lille ekstra spørgsmål:

Med hensyn til nedstående linie:
printf ("floor of 2.3 is %.1lf\n", floor (2.3) );

Hvad betyder .1lf efter % ?

--

Håber, I forstår hvad jeg mener... ellers må i lige klage :)
Avatar billede erikjacobsen Ekspert
05. december 2004 - 22:49 #1
Avatar billede arne_v Ekspert
05. december 2004 - 22:54 #2
%.1lf

% = indsæt værdi fra argument
.1 = 1 decimal
lf = double argument
Avatar billede bertelbrander Novice
05. december 2004 - 22:55 #3
#include <iostream>

int main()
{
  double d = 0.0361328;
  std::cout.precision(2);
  std::cout << d << std::endl;
}
Avatar billede arne_v Ekspert
05. december 2004 - 23:03 #4
Hvis jeg skulle lave noget sådant med C++ streams (hvilket jeg ikke ville
gøre da jeg ville foretrække C style printf) så vill jeg nok bruge manipulator:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
  double d = 0.0361328;
  cout << setprecision(2) << d << endl;
  return 0;
}
Avatar billede neocron Nybegynder
05. december 2004 - 23:08 #5
Jeg kunne simpelthen smide en
cout.precision(x) ind, som du sagde, bertel.
Tak til jer allesammen. I har alle tre bidraget, men jeg synes du skal smide et svar, bertel. Det var dit svar jeg gik ud fra.

Er jeg unfair, så sig lige til, ik?.. :)
Avatar billede neocron Nybegynder
05. december 2004 - 23:19 #6
Arne> Hmm, det lyder interessant? Men hvad er bedst, af printf og cout, til almen brug? Ved godt at det måske er et lidt uholdigt spørgsmål, da der jo er forskellig brug af dem, men i bund og grund er de der jo for det samme.

Er der egentlig nogle gode danske (behøves ikke specifikt at være dansk) begynder tutorials på nettet, som i kender til? Jeg har forsøgt mig med nogle engelske, men de kan simpelthen ikke forklare mig om pointere, referencer osv - jeg synes mange gør mere "skade" end gavn? www.cplusplus.com har ihvertfald nogle mangler, synes jeg.
Avatar billede bertelbrander Novice
05. december 2004 - 23:23 #7
Jeg foretrækker efterhånden at bruge cout, da den er typesikker (man kommer ikke til at skrive en double ud somom det var en streng) og den er let at udvide med sine egne typer.

Men printf er lidt lettere at bruge til simple ting.

Jeg samler ikke på point.
Avatar billede arne_v Ekspert
05. december 2004 - 23:25 #8
Nogle foretrækker VW. Nogle foretrækker Toyota.

Jeg synes at C++ stream konceptet er et misfoster.

Ved alt andet end meget simple eksempler bliver koden meget svær at læse og
det kan være meget svært at få noget formatering til at stå helt rigtigt.
Avatar billede neocron Nybegynder
05. december 2004 - 23:34 #9
Så vil jeg lade ret være ret - erik og arne, i kan deles om pointene, så smid et svar hver :)

Arne> Jeg kan godt se din pointe, og jeg er selv ikke andet end en totalt nybegynder indenfor C++, så jeg holder mig gerne til det, jeg kan overskue :)
Avatar billede arne_v Ekspert
05. december 2004 - 23:38 #10
Der findes også argumenter for det modsatte. Bertel har nævnt et par stykker.
Avatar billede arne_v Ekspert
05. december 2004 - 23:39 #11
C++ er nok for komplekst til at lære via en 10 sider tutorial på nettet.

Få fat på en god bog.
Avatar billede arne_v Ekspert
05. december 2004 - 23:39 #12
Der er gode odds for at Erik heller ikke vil have point !
Avatar billede arne_v Ekspert
05. december 2004 - 23:41 #13
Men du kan jo selv ligge et svar og så give mig 10 og beholde de 20 som de
"ikke point samlende" sagde nej tak til.
Avatar billede neocron Nybegynder
05. december 2004 - 23:47 #14
Hmm hvis Erik ikke vil have point, kan du ligeså godt få dem. Nu kan vi lige se hvad han siger.

Jeg fandt denne bog - tror det var gennem et link på exp - kan den give mig lidt krydderi? Det er jo lidt træls at være så begrænset som begynder, når man ikke kan lave andet end lidt simpel string-manipulering og fil-åbning, og har haft snuset lidt til C++ før, men kom fra det igen. Men jeg kan ligeså godt komme igang, først som sidst, når jeg alligevel hopper tilbage til sproget igen efter et stykke tid fordi jeg finder det interessant :)

http://www.idgforlag.dk/default.asp?loadside=/Vis_produkt.asp?ISBN=87-7843-561-7
Avatar billede arne_v Ekspert
05. december 2004 - 23:49 #15
Den er vist kendt som en af de bedste C++ lære bøger på dansk.

Udvalget er meget større på engelsk.
Avatar billede neocron Nybegynder
05. december 2004 - 23:53 #16
Så tror jeg, at jeg vil starte med den på "Modersmålet".. Så kan jeg kaste mig over de store moppedrenge bagefter. Generelt mangler jeg styr på en del, og du har helt ret i at tutorials ikke giver noget større overblik. Man får måske en eller to ting slået på plads, men jeg har bittert erfaret, at fra at kunne lave én ting, så er det straks sværere at sætte det sammen til noget reelt funktionelt kode :)
Avatar billede erikjacobsen Ekspert
06. december 2004 - 09:03 #17
Ingen point til mig, tak.
Avatar billede neocron Nybegynder
06. december 2004 - 13:19 #18
Det er bare i orden, Erik - og tak for hjælpen.
Avatar billede range Nybegynder
10. december 2004 - 07:50 #19
Der findes et par gratis bøger on-line, som du kan tage et kig på. Jeg har lagt links til dem her: http://cpp.range.dk/show_category.php?cat=3&lan=dk . De kan jo bruges som et supplement til den danske bog, som du havde fundet.

/range
Avatar billede neocron Nybegynder
10. december 2004 - 12:09 #20
range > det ser meget interessant ud - mange tak! Er glad for du lige smed det link!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester