2016-08-04 82 views
-1

Ich kenne nicht den Grund, warum der Schwimmer nicht den genauen Wert druckt, wenn ich dieses Programm ausführe.Float funktioniert nicht richtig

#include <iostream> 
using namespace std; 

int main(){ 

int a, b; 
float x; 

cout << "Input the value for a: "; 
cin >> a; 
cout << "Input the value for b: "; 
cin >> b; 

x = - b/a; 

printf("The value of x is: %.2f",x); 
//cout << "The value of x is: " << x; 

}

Ich möchte zumindest wenn ich Eingang 2 für a und 10 für b das Ergebnis 0,20 sein sollte, zeigt das Programm 0,00 nur

Antwort

3

Sie benötigen Operanden werfen als schwimmt.

ex: x = (float)a/(float)b 

Schauen Sie hier für weitere Informationen:

Dividing two integers to produce a float result

+0

nicht '\\' ergibt Quotient. also Ergebnis wird immer noch 5 – jonju

+0

so kann ich Float Antworten wie 1.5 nicht bekommen, wenn meine Operanden Ganzzahlen sind? – Marr

0

Vor allem Ausgang ist falsch, ich denke, Sie erwarten.

Es sollte -5.00 -10/2 = -5 sein. und mit %.2f =>-5.00

Angenommen. wenn a = 10 und b = 2, dann nach Ihren Code

`x= - 2/10` 

Dies sollte

x = 0. Notice the `\`. 

geben Da Sie es mit %.2f drucken es 0.00 gibt, die das System gibt.

Ich hoffe, dies verdeutlicht Ihre Zweifel.

+0

Ja, das ist das Ergebnis, aber was ich sehen möchte, ist die exakte Antwort wie 0,20. Gibt es irgendetwas, das ich hinzufügen sollte, um den excact Wert auszudrucken? – Marr

+0

können Sie es mit @King Arthurs Antwort durch Typecasting zu schweben bekommen – jonju