maggi62 Skrevet 1. oktober 2004 Skrevet 1. oktober 2004 Hvis jeg deler to int'er på hverandre får jeg da kun en int som svar, eller kan jeg få det til å bli en double? Jeg har to inter, sum og antall, som jeg vil finne gjennomsnittet av og skrive det ut med desimaler. Jeg har prøvd og lagre det som en double, men får bare ut en int. Er det noen annen måte å gjøre det på? int sum = 7; int antall = 3; double gjsnitt = sum/antall; cout << gjsnitt; //blir 2.00 hos meg
dabear Skrevet 1. oktober 2004 Skrevet 1. oktober 2004 (endret) Jeg kan ikke c++ så godt, men dette er ganske logisk, sjøl for meg. Bare sett sum og antall til double? #include <iostream> using namespace std; int main() { double sum = 7; double antall = 3; double gjsnitt = sum/antall; cout << gjsnitt << endl; //blir 2.33 hos meg system("pause"); } Endret 1. oktober 2004 av dabear
maggi62 Skrevet 1. oktober 2004 Forfatter Skrevet 1. oktober 2004 jeg fant en enda lettere måte å gjøre det på double gjsnitt = (double)sum/(double)antall; men takk for hjelpen:)
Tr1llobite Skrevet 1. oktober 2004 Skrevet 1. oktober 2004 Du påstår at DET er formelen for å regne ut gjennomsnitt? gjsnitt = verdier_tilsammen / antall_verdier; Ex: int i, j; double snitt; i = 5; j = 70; snitt = (i + j) / 2;
saboi Skrevet 1. oktober 2004 Skrevet 1. oktober 2004 (endret) Du påstår at DET er formelen for å regne ut gjennomsnitt? gjsnitt = verdier_tilsammen / antall_verdier; Ex: int i, j; double snitt; i = 5; j = 70; snitt = (i + j) / 2; eh? har du et poeng kriztoffz0r? du vet selvfølgelig at sum = verdier_til_sammen og at antall = antall_verdier? ville du bare skrive det samme med andre navn eller hvor er det du vil hen? Endret 1. oktober 2004 av saboi
Tr1llobite Skrevet 2. oktober 2004 Skrevet 2. oktober 2004 (endret) nei sorry, jeg misforstod litt :!: (les: leste ikke skikkelig) EDIT: Jeg oppfattet det som fex at han delte var1 på var 2 og trodde gjennomsnittet skulle komme ut av det ( (var1 + var2) / 2 = gjsnitt er jo riktig) Endret 2. oktober 2004 av kr1570ffz0r
Atpn Skrevet 2. oktober 2004 Skrevet 2. oktober 2004 Såvidt jeg har forstått det så blir int/int = int grunnen er at den regner utrykket som en int. F.eks 7/2=3 (egentlig skal det være 3,5) 7/2.0 derimot = 3,5
Dead_Rabbit Skrevet 2. oktober 2004 Skrevet 2. oktober 2004 (endret) int/int kan godt bli konvertert til en double. eks. int a = 20; int b = 10; double kvotient = a/b; kvotient == 2.0; Edit: Ah!! Dreit meg ut... Sånn, nå står det kvotient! Endret 3. oktober 2004 av zirener
saboi Skrevet 2. oktober 2004 Skrevet 2. oktober 2004 (endret) int/int kan godt bli konvertert til en double.eks. int a = 20; int b = 10; double kvontient = a/b; kvontient == 2.0; jeg skjønner ikke helt hva du mener med dette? vi vet at det går ann å caste en int til en double, hva så? forresten heter det kvotient ikke kvontient Endret 3. oktober 2004 av saboi
søppel Skrevet 2. oktober 2004 Skrevet 2. oktober 2004 (endret) Uttrykket a/b der a og b er av typen int returnerer en int, zirener. Hvis a er 10 og b 3 blir altså noe forkortet. Så det som skjer er at svaret, som i utgangspunktet er galt og av typen int, blir castet til double. Edit: Kan si det slik at divisjonen blir utført først, der det opprettes et "temporary objekt" av typen int der svaret lagres i. Så "assignes" svaret til variabelen. Edit2: Det er forresten lurt å bruke en C++'ish cast fremfor en C'ish: double kvotient = static_cast<double>(a) / static_cast<double>(b); Slå opp om du/noen lurer på hvorfor. Endret 2. oktober 2004 av søppel
Dead_Rabbit Skrevet 3. oktober 2004 Skrevet 3. oktober 2004 Jeg har vel missforstått litt(syns det var et litt rart spørsmå), hehe, men ser det nå.(jeg var rar:P). Kvotient, skal huske det .
GeirGrusom Skrevet 4. oktober 2004 Skrevet 4. oktober 2004 Backslash er det samme som integral division int a = 100; int b = 20; int c = a \ b;
iobas Skrevet 4. oktober 2004 Skrevet 4. oktober 2004 Backslash er det samme som integral division int a = 100; int b = 20; int c = a \ b; hæ? hvor mye syre har du spist i dag?
GeirGrusom Skrevet 4. oktober 2004 Skrevet 4. oktober 2004 (endret) hmmm, det står så i MSDN... Kanskje det er for C# __asm { mov eax, a idiv eax, b mov c, eax } skullie bli det samme som det jeg skrev. Endret 4. oktober 2004 av GeirGrusom
iobas Skrevet 4. oktober 2004 Skrevet 4. oktober 2004 hæ? kan du forklare meg hva du snakker om? hvor på msdn står det at \ er integral divisjon? mente du egentlig / ? __asm { mov eax, a idiv eax, b mov c, eax } skullie bli det samme som det jeg skrev. ??? er ikke det der det samme som en vanlig divisjon?
Neutronix Skrevet 21. oktober 2004 Skrevet 21. oktober 2004 double kvotient = static_cast<double>(a) / static_cast<double>(b); Det skulle være nok å caste en av verdiene for å returnere en double. Slik: double kvotient = a / static_cast<double>(b);
abcd423417984 Skrevet 21. oktober 2004 Skrevet 21. oktober 2004 (endret) eventuelt kan du bruke: int a = 7; int b = 2; int svar = a/b; int rest = a%b; litt off topic kanskje? men er alikevel nyttig å kunne så ikke flame Endret 21. oktober 2004 av invictus
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå