Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Typwandlung von double zu int

BDelphi / 12 Antworten / Flachansicht Nickles

oder umgekehrt!

Hallo erstmal und eine Schönes Osterfest.
Ich habe die Aufgabe, die ich mir selber gestellt habe.
Zahlen die ich multipliziere durch 3 zu Teilen, das geht aber leider nicht, das geht so weit ich weiß nur mit int - werten.
Ich versuche dies in VC 6.0 zu reallisieren.
Die Frage ist jetzt: Geht das überhaupt, ich nehme an mit dem cast-Operator, aber wie ist die Frage, ich bin noch ziemlich unerfahren, und im VC 6.0 ist es recht kompliziert finde ich, habt ihr vielleicht einen Lösungsvorschlag für mich?
Danke schon mal im vorraus.
Gruß Thorsten :-)

bei Antwort benachrichtigen
Dreamforger BDelphi „Hallo nochmal, ja, das ist so - in meinem Beruf wofür ich ein Programm...“
Optionen

ich hab zwar immer noch nicht raus warum 20cm * 20cm nicht 0.040 qm ist, das ist aber wohl auch nicht das Problem.

was du wirklich suchst ist anscheinend die Zahl die
1. größer oder gleich einer eingegebenen Zahl ist,
2. ganzzahlig ist und
3. durch 3 teilbar ist.
und dafür willst du die eingegebene Zahl solange um 1 erhöhen bis die obigen bedingungen erfüllt sind.

Auch wenn das drei Wünsche auf einmal sind kannst du das ja auch leichter haben ( insbesondere auch schneller ):

#include math.h // muss natürlich in spitzklammerndouble sum3 = eingabe/3.0; // sum3 hat jetzt evtl nachkommastellen
sum3 = ceil( sum3 ); // sum3 wurde jetzt auf die nächthöhere ganze Zahl aufgerundet. Falls sum3 bereits ganzzahlig war ist nichts passiert.

bsp.: eingabe = 20; // cm
sum3 = eingabe/3; // = 6.667cm;
sum3 = ceil(sum3); // = 7 cm;

danach kannst du sum3 wieder mit 3 multiplizieren und hast die kanntenlänge von deinem quadrat. Hier halt 21 cm.

PS. wie du schon vorgeschlagen hast könntest du im else zweig 1 addieren: eingabe++; dann musst du aber nochmal prüfen ob deine eingabe jetzt durch 3 teilbar ist: c&p des vorherigen codes.


bei Antwort benachrichtigen