Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » int double prob

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.02.2009, 18:46 Uhr
~o.o
Gast


hi leute, ich hab da ein kleines problem und hoffe das mir vll jmd von euch helfen kann
ich hab volgende zeile:

b=((312-a)/52);

b ist double und a ist int. ich denke das es daran liegt. kann mir jemand sagen wie ich es schreiben muss damit es mit int und double klappt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.02.2009, 18:51 Uhr
~o.o
Gast


achja ich depp hab vergessen was nicht passt. also es ist so das da immer 0 rauskommt, was natürlich nicht sein soll
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.02.2009, 19:04 Uhr
öni



b= (double) ((312-a)/52.0);

so dürfte es passen hoffe ich mal.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.02.2009, 19:17 Uhr
0xdeadbeef
Gott
(Operator)



C++:
b = (312 - a) / 52.0;


reicht schon. Der Hintergrund sind die usual arithmetic conversions, die bestimmen, welchen Typ ein einfacher arithmetischer Ausdruck hat:

Zitat von C++-Standard 5 (9):

Many binary operators that expect operands of arithmetic or enumeration type cause conversions and yield result types in a similar way. The purpose is to yield a common type, which is also the type of the result. This pattern is called the usual arithmetic conversions, which are defined as follows:

— If either operand is of type long double, the other shall be converted to long double.
— Otherwise, if either operand is double, the other shall be converted to double.
— Otherwise, if either operand is float, the other shall be converted to float.
— Otherwise, the integral promotions (4.5) shall be performed on both operands.
— Then, if either operand is unsigned long the other shall be converted to unsigned long.
— Otherwise, if one operand is a long int and the other unsigned int, then if a long int can represent all the values of an unsigned int, the unsigned int shall be converted to a long int; otherwise both operands shall be converted to unsigned long int.
— Otherwise, if either operand is long, the other shall be converted to long.
— Otherwise, if either operand is unsigned, the other shall be converted to unsigned.
[Note: otherwise, the only remaining case is that both operands are int ]


Da 312, a und 52 alles int-Ausdrücke sind, ist der Typ von (312 - a) int, dementsprechend auch der von (312 - a) / 52, und int kann halt keine Nachkommastellen speichern. Im Ausdruck (312 - a) / 52.0 ist (312 - a) int, 52.0 aber double, und wie du oben nachlesen kannst, ist damit auch der Gesamtausdruck double.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 02.02.2009 um 19:19 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.02.2009, 05:53 Uhr
~o.o
Gast


hab jede einzel zundsammen kombination der bergiffe schon probiert, aber irgendwie bekomme ich wenn ich b ausgebe immer nur den wert -991146299 raus =/.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.02.2009, 07:08 Uhr
0xdeadbeef
Gott
(Operator)


Unter der Annahme, dass es sich um C-Code handelt,

C++:
printf("%f\n", b);



In C++

C++:
std::cout << b << std::endl;


, aber da dürfte sich das Problem ja gar nicht erst ergeben.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 03.02.2009 um 07:14 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: