19. juli 2005 - 19:04
Der er
9 kommentarer og 1 løsning
Simpelt spørgsmål
sys lige det gik så godt. Nu er der noget jeg slet ikke kan forstå Er en erklæring af en variabel som float, i kke en variabel der kan indeholde kommatal??? Hvorfor dur det her ikke: float a; a = 33/8; cout << a; den giver 4 ikke 4.125 som jeg vil mene, at det skal give Forhånd tak
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
forklaring: a = 33/8; beregnes som: divider integer 33 med integer 8 (altså heltals division) konverterer resultat fra int til float gem værdi i a
hmm er det ikke lidt åndsvagt??? Ellers tak ;-) smid svar
sådan fungerer C/C++, Java, C#, Fortran etc. også og svar
PS: Det er faktisk nok at gøre en af dem til float - 33.0/8 og 33/8.0 vil også virke.
Du får lige et bonus spørgsmål :-) Hvorfor dur det her så ikke: float a = (7.0 % 2.0); cout << a; Det kan compile ved 7 % 2 men giver forkert resultat.
7 % 2 skal give 1 % er modulo, altså rest ved heltalsdivision. Derfor kan man heller ikke udføre operationen på float datatyper.
#include <iostream> #include <cmath> using namespace std; int main() { float a; a = 7 % 2; cout << a << endl; a = fmod(7.5,2.0); cout << a << endl; return 0; } udskriver: 1 1.5 og det er de korrekte resultater for % og fmod
Ok - hvade misforstået funktionen. Troede man fik et numerisk tal tilbage og ikke et sand eller falsk. Tak for det
19. juli 2005 - 21:21
#10
du får et tal tilbage 7 % 2 er 1 9 % 5 er 4 13 % 5 er 3 etc.
Kurser inden for grundlæggende programmering