?
Hi!
rimms schrieb:
Hi!
Ich möchte gerne bei einer double Variable gezielt die Vor- und Nachkommastellen behandeln.
double lz;
scanf("%d", &lz);
Double liest man so ein: scanf ( "%lf", &lz );
Die Formatzeichen kannst du hier nachgucken:
// http://www.cplusplus.com/reference/clibrary/cmath/
rimms schrieb:
Gibt es in C eine Möglichkeit sich gezielt mit den Bereichen vor oder nach dem Komma/Punkt zu widmen?
Ja, gibt es. Mit modf kannst du dir die Zahl in Vor- und Nachkommateil aufteilen lassen.
http://www.cplusplus.com/reference/clibrary/cmath/modf.html
rimms schrieb:
Mein Ziel ist, dass ich z. B. ab x.42 sage x++, und den Nachkomma-Anteil auf Null setze.
Gruß,
rimms
Das kannst du mit einem Vergleich machen. Wenn die Zahl größer x.42 ist, kannst du den Nachkommateil mit floor auf 0 setzen.
http://www.cplusplus.com/reference/clibrary/cmath/floor.html
Machst du so, guckst du hier:
#include <stdio.h>
#include <math.h>
int Error ( char* e )
{
fprintf ( stderr, "%s\n", e );
return 1;
}
int main ()
{
double num;
double fractpart, intpart;
if ( 1 != scanf ( "%lf", &num ) )
return Error ( "Eingabefehler.");
num = 1.423;
fractpart = modf ( num, &intpart );
printf ("%lf = %lf + %lf \n", num, intpart, fractpart);
if ( num > 1.42 )
num = floor ( num );
printf ( "%lf\n", num );
return 0;
}
Gruß,
B.B.