Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » komma zahl ohne koma wieso???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.10.2008, 21:58 Uhr
~Ronin25
Gast


Hi
ich lerne noch c++ und zwar objektorientiert, falls das wichtig ist.

so und taschenrechner proggen kann cih schon ein bissel und nun wollte ich mit koma zahlen rechnen, ABER iwie geht das nicht hier:


C++:
#include <iostream>
using namespace std;

int main() {
    double w;
    
    cout << "Willkommen in dem Heron-Taschenrechner. \ngecodet by: Ronin25\n\nDer Heron-Rechner rechnet die Wurzeln aus Nicht-Quadratzahlen aus.\n\n\n\n\n";  
    cout << "Geben sie bitte die Wurzel ein:";
    cin >> w;
    cout.precision(16);
    cout << "Die Wurzel lautet: " << w;
    cout << "\n\n\n\n";
    
    system("PAUSE");
    
}



Iwie spuckt er immer nur eine normale Zahl aus aber ohne das komma, woran liegt das ich habe doch double genommen und das ist bis auf 15 nachkommzeichen genau


was habe ich falsch gemacht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.10.2008, 23:24 Uhr
Hans
Library Walker
(Operator)


Hi,

das Programm gibt bisher nur das aus, was Du eingibst. Da steht noch keine Rechnung im Code drin; die solltest Du noch ergänzen, wenn das Programm auch rechen soll...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.10.2008, 08:54 Uhr
~Ronin25
Gast


Ach du bist ja ganz schlau aber das wichtige ist ja dass er wenn man eine Kommazahl eintippt, dann spuckt er keine Kommazahl aus. Ich baue mein Programm schrittweise auf und kontrolliere zwischendurch immer wieder und deshalb bin ich erst hier ohne Rechnungen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.10.2008, 09:36 Uhr
Oliver
S2-Pixelgeneral


Du musst einen Punkt als Komma eingeben.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.10.2008, 09:36 Uhr
Tommix



Du mußt einen Dezimalpunkt eingeben, kein Komma.
- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.10.2008, 09:51 Uhr
~Ronin25
Gast


Ach ja stimmt jetzt fällts mir wieder ein Fließkommazahlen und Punkt kein Komma etc hehe *G*


Aber geht das nicht dass man auch ein Komma verwendet?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.10.2008, 10:22 Uhr
Tommix



Sie mal hier:
www.fun-soft.de/showtopic.php?threadid=5328
(Post 007).

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.10.2008, 22:32 Uhr
zac



Aber für cin und cout usw. ist es bei weitem netter die C++-Locales zu benutzen als mit setlocale zu arbeiten...


C++:
#include <locale>
#include <iostream>

using namespace std;

int main()
{
     cout.imbue(locale(LOCALE_NAME));
     cin.imbue(locale(LOCALE_NAME));
     cout.precision(16);
    
     double a, b;
     cin >> a;
     cin >> b;
     cout << b-a << endl;
}




Dies sollte die (wenn du statt LOCALE_NAME den locale-Namen benutzt, den du brauchst, unter Linux wäre das wohl "de_DE.utf-8", unter windows wohl sowas wie "german" oder "germany-German", da weiß ich das nicht genau, aber generell funktionieren die selben Namen mit den C++-locales wie auch mit setlocale) Eingabe mit Komma ermöglichen und wird auch die Ausgabe dementsprechend anpassen. Das ist irgendwie auch flexibler als setlocale, da man beliebig viele Instanzen der locale-Klasse benutzen kann.
Wenn du globales Verhalten willst, kannst du
C++:
locale::global(locale(LOCALE_NAME));
benutzen. Diese Einstellung beeinflusst dann auch die C-Zeichenkonvertierungsfunktionen, so wie es ein Aufruf von setlocale mit LC_ALL täte.
--
mov eax,0f9h
push 2
push 2
mov edx,esp
int 2eh

Dieser Post wurde am 22.10.2008 um 22:34 Uhr von zac editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: