| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: kurze frage: int nach float? im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Ich habe nen scanf() auf floateingaben und möchte überprüfen, wann jemand eine bestimmte zahl eingibt. dadurch, dass ich scanf() ...
![]() |
| | #1 (permalink) |
| Senior Member Registriert seit: 18.05.04 ![]() Likes: 0 | Anzeige Ich habe nen scanf() auf floateingaben und möchte überprüfen, wann jemand eine bestimmte zahl eingibt. dadurch, dass ich scanf() mit einer float überprüfe kann man nicht mit "5" oder "2" abgleichen, da er ja intern irgendetwas wie 5.00000 abspeichert. Wie kann ich also mein abzugleichenden int wert nach float umwandeln damit wenn er 5 eingibt (PC liest es als 5.00000...) und ich ein float_von_int(5) als bedingung angebe ich abzweigen kann?
__________________ Die neuen Desire Z und Desire HD Smartphones |
| | |
| | #2 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Indem du das int in ein float konvertierst. Typecasting nennt sich das Ganze. Code: int i; float j; ... j = (float)i; i = (int)j;
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) | |
| Senior Member Themenstarter Registriert seit: 18.05.04 ![]() Likes: 0 | Zitat:
Hier der Code: Code: float z;
while(scanf("%f",&z)!=0){...}
probiert hab ich dann
while(scanf("%f",&z)!=(float)0){...}
while( ((int)(scanf("%f",&z)) !=0){...}
oder
float null=0,z;
int null2=0;
null2=(float)null und umgekehrt und statt der !=0 dann !=null und null2 eingesetzt.
Wie weiter?^^
__________________ Die neuen Desire Z und Desire HD Smartphones | |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 30.09.06 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 441 | Inwieweit das bei einer 0 anwendbar ist, weiß ich jetzt nicht, müßte ich auch erst die Referenz wälzen. Hab noch nie ein Typecasting für 0 benötigt. Ich würde mich in diesem Fall für die schnelle Lösung entscheiden und das Float in ein Array zerlegen und damit arbeiten. Mag nicht die beste Lösung sein, aber die, die mir spontan einfallen würde. Code: float mynumber=66.6; char i[sizeof(float)]; *(float*)i = mynumber;
__________________ Mein Blog - Mein Job - Diaspora Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund. Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+ |
| | |
| | #5 (permalink) | |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | also mein scanf gibt mir sowieso immer ein int zurück allerdings: Zitat:
Zu den Floats allgemein: http://de.wikipedia.org/wiki/Gleitko...ommaarithmetik insbesondere bei Vergleichen sollte man sehr aufpassen, da eben die Darstellung der Zahlen nicht unbedingt für ein einfaches "==" geeignet ist.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | |
| | |
| | #6 (permalink) |
| Senior Member Registriert seit: 10.03.07 ![]() Likes: 19 | also ich weiss ja nicht was du programmieren willst, aber scanf() ist sehr unsicher. die sicherste möglichkeit ist immer noch alle zeichen einzeln einzulesen und auszuwerten. |
| | |
| | #7 (permalink) | ||
| Senior Member Themenstarter Registriert seit: 18.05.04 ![]() Likes: 0 | Zitat:
edit: Du hast vollkommen recht, ich habe es jetzt erst verstanden. Die Bedingung ist falsch formuliert. Ich möchte in der Bedingung das "neue" z mit 0 vergleichen und nicht die interne rückgabe von scanf(); Wie kann ich das scanf() in der abfrage beibehalten und dennoch z vergleichen?
__________________ Die neuen Desire Z und Desire HD Smartphones | ||
| | |
| | #8 (permalink) |
| lösen könntest es z.b. mit Code: while(1)
{
scanf("%f",&z);
if( z == 0.) break;
...
} | |
| | |
| | #9 (permalink) | |
| Senior Member Themenstarter Registriert seit: 18.05.04 ![]() Likes: 0 | Zitat:
Code: while((z=eingabe())!=0){
__________________ Die neuen Desire Z und Desire HD Smartphones | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| kurze Frage (Batch) | Xethicalh4exe | Code Kitchen | 5 | 19.08.09 13:11 |
| Float nach String konvertieren?? | RedEagle | Code Kitchen | 9 | 22.05.07 18:23 |
| Kurze http-Frage - Abhören von request andauern | jesus | Code Kitchen | 2 | 23.01.07 14:06 |
| float-Variablen in C | niedriger noob | Code Kitchen | 2 | 03.02.02 16:46 |