Ich habe ein Problem, das gleiche Ergebnis von mathematischen Gleichung, wenn ich eine Funktion verwenden. Hier ist mein Code.C convert Int zu double in einer Funktion
#include <stdio.h>
int main()
{
int a=5, b=2;
double c;
c = (double) a/b;
printf("%f\n", c);
c = Divide(a);
printf("%f\n", c);
return 0;
}
int Divide(int value)
{
return value =(double) value/2;
}
Wenn ich den Code ausführen, erhalte ich:
2.500000
2.000000
Ich versuche 2,50000 für beide zu bekommen. Ich habe versucht, die Funktion auf
double Divide(double value)
ohne Glück zu ändern. Ich bin neu in C und Codierung im Allgemeinen und bin fest. Danke für alle, die mir helfen können.
'Rückgabewert = (double) Wert/2;' führt Floating-p aus oint division, was zu "2.5" führt, und weist den Wert dann einem "int" mit einer Kürzung zu und gibt "2" zurück. Das Entfernen des 'value =' -Teils liefert das beabsichtigte Verhalten. – owacoder
Vielen Dank für die Antwort. Was du geschrieben hast, ergibt für mich Sinn. Ich war in der Lage, diese Funktion zum Arbeiten zu bekommen – jojonac