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 fra DE-CIX
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