Hallo!
Ich habe folgendes Problem mit der Programmiersprache C:
Ich möchte zwei float-Variablen vergleichen. Dabei soll der Vergleich allerdings nur bis zur dritten Nachkommastelle beschränkt sein und die dritte Nachkommastelle durch die vierte Nachkommastelle richtig auf- bzw. abgerundet werden.
Meiner Meinung nach könnte ich die Variablen an Zwischenvariablen gerundet übergeben und diese dann vergleichen. Doch wie kann ich den Zwischenvariablen gerundete Werte übergeben?
Weiß jemand eine Lösung?
Danke!
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Konvertiere die zahlen wie hier von f nach rund_f:
float f;
double rund_f;
rund_f=floor(f*1000.0+0.5);
mr.escape
Wenn Du die Gerundeten Werte nur vergleichen, brauchst Du keine \"Zwischenvariablen\"...
Dann kannst Du einfach so vergleichen:
if(floor(f1*1000.0+0.5)==floor(f2*1000.0+0.5)){...}
CU Borlander
Wenn Du die Gerundeten Werte nur vergleichen, brauchst Du keine \"Zwischenvariablen\"...
Dann kannst Du einfach so vergleichen:
if(floor(f1*1000.0+0.5)==floor(f2*1000.0+0.5)){...}
CU Borlander
DANKE an euch beide!
Mittlerweile habe ich das Problem in den Griff bekommen. :-)
Mit der ceil() Funktion und der Multiplikation mit 1000 hatte ich gestern schon experimentiert, doch auf die Idee mit den 0.5 wäre ich ohne Eure Hilfe nicht gekommen.
Danke nochmal! Martin