![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > gcc,printf() und float | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2002-09-19, 15:25 h Kronos Posts: 1168 User |
Wie der Titel schon andeutet habe ich ein Problem mit der Ausgabe von Fliesskommazahlen. Wenn ich "print("%4.1fn",f);" schreibe erwarte ich "1234.1" als Ergebnis, aber nein "%4.1f" ist was ich kriege ![]() fprint()/sprintf() nutze habe ich das gleiche Problem, mit StormC4 geht das Ganze dann wieder ... Compiliert wird mit dem aktuellen "stable" Geek-Gadgets und den Optionen noixemul,68030,68881. MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2002-09-19, 16:16 h gni Posts: 1106 User |
Zitat: Wie waers mit Lesen der Dokumentation? Wenn Du floats/double willst, mußt Du auch -lm beim Linkern benutzen.... [ - Answer - Quote - Direct link - ] |
2002-09-19, 16:44 h Kronos Posts: 1168 User |
@gni Nette Idee ![]() ![]() ![]() ![]() Das Programm kann mit floats rechnen, und das funktioniert auch einwandfrei da ich ja auch für 68881 compiliere, nur wenn ich es dann mit printf() und Co ausgeben will hab ich Probleme und zwar unabhängig von deinem Vorschlag. MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2002-09-19, 23:03 h Banger Posts: 12 User |
Moin, moin Kronos! Ich habe es mit dem gcc2.95.3-4 ausprobiert und es hat geklappt. Hier ist der Sourcecode: ******************* #include <iostream> #include <cstdio> int main( void ) { float f = 1234.1; printf( "%4.1fn", f ); f = 1002.4323; printf( "%4.1fn", f ); cout << f << endl; return 0; } ******************* Ich übersetzt mit: g++ -o test main.cpp -noixemul Ausgabe von test: 1234.1 1002.4 1002.43 Wenn ich den C++ Kram weglasse und mit dem gcc übersetze dann bekomme ich auch die Ausgabe: %4.1f! Du kannst aber mit dem g++ auch Sourcecode übersetzen der aus reinem ANSI C ist und damit geht es. Viel Spaß beim Kompilieren. Banger ![]() [ - Answer - Quote - Direct link - ] |
2002-09-20, 09:52 h tokai Posts: 1071 User |
ich kenne den gcc zwar nicht, aber vielleicht verwaltet er unter bestimmten Umständen die floats intern als double (beim SAS/C gibts da diesbzgl. auch eine Option, wenn ich micht recht erinnere, Präzision: "DOUBLE" bzw. "MIXED") und gcc-printf kommt dann damit nicht klar. Probier dochmal eine Ausgabe mit printf("%lf",f); ... vielleicht klappt es ja dann. -- http://www.christianrosentreter.de [ - Answer - Quote - Direct link - ] |
2002-09-20, 15:50 h Kronos Posts: 1168 User |
@tokai Kein Effekt !! @Banger Yo dat wars ![]() Wenn mir jetzt noch einer erklären kann was C++ mit floats ind printf() zutun hat ![]() Aba hupsach ät lüpt ![]() MfG MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2002-09-26, 14:09 h gni Posts: 1106 User |
Zitat: Du machst was falsch... Nochmal für Dich: Wenn Du mit -noixemul linkst, dann mußt Du -lm benutzen wenn Du printf() mit Float-Support willst! [ Dieser Beitrag wurde von gni am 26.09.2002 editiert. ] [ - Answer - Quote - Direct link - ] |
2002-09-26, 15:21 h Kronos Posts: 1168 User |
Zitat: Was aber nicht funktioniert hat ... ![]() ![]() ![]() MfG Kronos -- Only the good die young all the evil seem to live forever [ - Answer - Quote - Direct link - ] |
2002-09-26, 17:08 h gni Posts: 1106 User |
Zitat:Zitat:Was aber nicht funktioniert hat ... Wie genau sah das Linken aus? Bitte die exakte Kommandozeile. [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > gcc,printf() und float | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |