Simples Problem mit sprintf

OP #4715065
Lesenswert?
• ▲
▼
Hallo eine simple Funktion
und ich habe keine Ahnung wo das Problem liegt

period = 218
  f = 1000 / period;

  sprintf (strBuff  ," Hz: %.3f", f);

sollte eigentlich Hz: 4,587 ausgeben
ich bekomme aber immer eine gerade Zahl wie Hz: 4.000

http://www.cplusplus.com/reference/cstdio/printf/
Gast #4716421
Lesenswert?
• ▲
▼
Martin M. schrieb:
> Hallo eine simple Funktion
> und ich habe keine Ahnung wo das Problem liegt

>
> period = 218
>   f = 1000 / period;
>
>   sprintf (strBuff  ," Hz: %.3f", f);
>
> sollte eigentlich Hz: 4,587 ausgeben
> ich bekomme aber immer eine gerade Zahl wie Hz: 4.000
>
> http://www.cplusplus.com/reference/cstdio/printf/


Nein - du bekommst gar nichts angezeigt mit deinem Code

1. fehlt da der type von strBuff, f und bei dieser zeile auch was

> period = 218

richtig muss es lauten

period = 218 ;

2. period und f sind vermutlich ganze Zahlen?
wenn du ein float haben möchtest, so nennt man die Kommazahlen
musst du zumindest nach float casten

casten steht im Handbuch

ich bin ja nicht so:
du kannst das mal probieren:
1
char strBuff[30] = "";
2
int period = 218;
3
float f = 0;
4

5
f = 1000 / ( float *) period;
6
 
7
sprintf (strBuff  ," Hz: %.3f", (float *) f);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren