C++ std::stof ausser Kontrolle

T_55

Lieutenant
Registriert
Feb. 2013
Beiträge
643
Code:
std::cout << std::stof("1.1234") << std::endl; // punkt
std::cout << std::stof("1,1234") << std::endl; // komma

Ich bin etwas konfus, bei mir ist std::stof ausser Kontrolle geraten.

Einmal kommt:

1
1.1234

und bei einem anderen Testprogramm unter völlig gleichen Bedingungen:

1.1234
1

Also scheinbar funktioniert es nach belieben mal mit Komma und mal mit Punkt.
Ich möchte das es verlässlich mit Punkt funktioniert. Kann man einstellen, dass gezwungen und verlässlich mit Punkt gearbeitet wird?

Grüße
 
std::cout << std::showpoint << "1.1234 ";

nehmen wir an deine Zahl ist ein float "a", dann wäre diese Ausgabe besser:

cout.setf(ios::fixed);
cout << setprecision(5) << a << endl;
 
Zuletzt bearbeitet:
Danke, hab es jetzt gerade so hinbekommen:
Code:
std::locale::global(std::locale::classic());
 
"Note that the format accepted by these functions depends on the current locale."

Manchmal ist es hilfreich die Beschreibung zu einer Methode zu lesen.

Edit: Zu langsam gewesen
 
Zurück
Oben