2016-06-04 7 views
2

Wie entscheide ich, wie viele Dezimalstellen ich für meinen Float verwenden soll. siehe, ich habe dieses code`Wie entscheide ich, wie viele Dezimalstellen ich für meinen Float in c verwenden soll

int main (void) 
{ 
    printf("please give me an integer: "); 
    float num = GetFloat(); 

    float numb; 

    numb = num; 
    numb = numb /2; 

    printf("the half of %f is %f\n", num, numb); 
} 

aber der Computer druckt viele Nullen nach

eks:

bitte geben Sie mir eine ganze Zahl:
die Hälfte von 4,000000 ist 2.000000

So könnte es schön sein wie 3 Dezimalstellen stattdessen 7 von:

bitte gib mir eine ganze Zahl:
die Hälfte von 10,0 beträgt 5,00

bitte gib mir eine ganze Zahl:
die Hälfte von 3,00 1,50

+2

A [ 'printf' (und Familie) reference] (http haben sollte: // en. cppreference.com/w/c/io/fprintf) könnte helfen. –

+0

@JoachimPileborg Die Bezeichnung von _3 Dezimalstellen_ existiert nicht. – BLUEPIXY

+0

RTFM für [printf] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html). – fuz

Antwort

1

Sie können auch immer den Formatbezeichner %g verwenden. Es formatiert die Fließkommazahl entweder mit dem Format f oder e, abhängig von der Anzahl der signifikanten Stellen.

int main (void) { 
    printf("Please give me a floating point number: "); 

    // Read the value from the user. 
    float num; 
    scanf("%f", &num); 

    // Compute it's half. 
    float half = num /2; 

    // Display the result. 
    printf("The half of %f is %g\n", num, half); 
} 
+0

danke, 4 ur hilfe –

1

Sie müssen printf Formatierungsparameter verwenden:

int main (void) 
{ 
    printf("please give me an integer: "); 
    float num = GetFloat(); 

    float numb; 

    numb = num; 
    numb = numb /2; 

    printf("the half of %.3f is %.3f\n", num, numb); 

    return 0; 
} 

In dem Beispiel sagt die Syntax %.3fprintf, 3 Dezimalstellen zu drucken.

+0

Dies ist _nach dem Dezimalzeichen_. – BLUEPIXY

+0

okay vielen dank –

0

Dies ist das Format Typ für printf

%[flags][width][.precision][length]specifier 

in diesem Fall, dass Sie diese printf("the half of %.3f is %.3f\n", num, numb);

+0

okay, danke dir, es war nett von dir –