Konvertierung von 'float' in 'int', moeglicher Datenverlust
-
Hi,
kann mir bitte jemand das erklären, wieso immer wieder beim kompilieren diese Fehlermeldung erscheint ? Ich benutze den Visual C++ Kopiler.
#include "stdafx.h" #include "iostream.h" #include "math.h" int main(int argc, char* argv[]) { int h, v, a, r; float pi; pi = 3,14159265358979; cout << "Bitte gebe den Radius und die Hoehe für das Volumen und Mantelflaeche eines Kreiszylinders an!\n"; cout << "Hoehe eingeben: "; cin >> h; cout << "\nRadius eingeben: "; cin >> r; v = pi*r*r*h; a=2*pi*r*h; cout << "\n\nDie Flaeche betraegt: " << a << " und das Volumen betraegt " << v << "\n\n"; return 0; }lg,
Mr.Homer
-
Hallo,
da dein Volumen und deine Fläche eigentlich immer ein float ergeben bekommst du diese Fehlermeldung. Und du hast für die Fläche und das Volumen nur ein int angeben. Somit werden nach der Berechnung einfach die Kommastellen abgeschnitten.
Gruß Spartaner
-
Danke, du hast Recht

lg und schönes we
-
#include "stdafx.h" // Eigentlich nicht notwendig ... includierst ja alle wichtigen Header schon weiter unten ... #include <iostream> // #include "iostream.h" ... also der std. Header ist das net ^^ #include <math> // #include "math.h" ... siehe oben ^^ int main() { unsigned int heigth = 0; // Ne negative Höhe? nee ... also unsigned unsigned int r = 0; // bei Radius wohl das selbe ... float pi= 3.14159265358979; // Gehört ein Punkt hin ... std::cout << "Bitte gebe den Radius und die Hoehe für das Volumen und Mantelflaeche eines Kreiszylinders an!" << std::endl; // std::endl ... std::cout << "Hoehe: " << std::flush; std::cin >> heigth; std::cout << "\nRadius: " << std::flush; std::cin >> r; std::cout << "\n\nDie Flaeche betraegt: " << (2 * pi * r * h) << " und das Volumen betraegt " << (pi * r * r * h) << std::endl; return 0; }Solltest noch gucken das der dir nicht raushaut wenn du nen char anstelle einer Zahl eingibst ...
-
float pi= 3.14159265358979f; ist auch "Müll".

-
Besser:
const double PI = std::acos( -1.0 );(benötigt '#include <cmath>')
Gruß
Werner