float <=> double

#442431
Lesenswert?
• ▲
▼
> Es ist nicht "LF" gemeint sondern ".EinsF", sprich auf 1 Nachkommastelle
> gerundet.

Ah. Sorry.
Ist mit dem hier verwendetem Font nicht unterscheidbar.
Da sollten wir mal mit Andi drüber reden.

> Warum geht die Typkonvertierung nur mit double? Double braucht ja
> doppelt so viel Speicherplatz wie float :-(

Jetzt ist alles klar.
Die Antwort ist:
Weil printf() eine variadische Funktion ist.
D.h. es gibt keinen Prototypen, der dem Compiler sagen
würde, wie die Datentypen (mit Ausnahme des ersten
Argumentes, dem Formatstring) aussehen. Daher gelten
hier Standardregeln. Und eine dieser Standardregeln besagt,
dass ein float immer als double übergeben wird. printf()
kriegt also niemals einen float zu Gesicht, immer nur
double. printf kriegt übrigens auch niemals einen char
zu Gesicht, weil eben besagte Regeln festlegen, dass ein
char implizit zu einem int hochgecastet ('promoted')
wird. Daher ist zb auch
    printf( "%c", 23 );
kein Problem. 23 ist ein int, und %c holt sich einen int
aus der Argumentliste. Wenn allerdings diese Promotingregel
nicht wäre, dann hätte man hier:
    printf( "%c", 'a' );
dann effektiv ein Problem. %c holt sich einen int, als Argument
wäre aber nur ein char da. Durch die Promotingregel, dass ein
char als int übergeben wird, bügelt sich das alles wieder aus.
Persönliche Seite #442458
Lesenswert?
• ▲
▼
> Ah. Sorry.
> Ist mit dem hier verwendetem Font nicht unterscheidbar.
> Da sollten wir mal mit Andi drüber reden.

Das ist nicht Andreas' Aufgabe, das kannst Du bei Deinem Browser leicht 
selbst einstellen.

FF: Extras->Einstellungen->[Inhalt] aufrufen
dort den "Erweitert"-Knopf für Schriftarteinstellungen anklicken und im 
nun erscheinenden Dialog eine andere Schriftart für "Feste Breite" 
einstellen.

Da das für jede einzelne Zeichencodierung einzeln durchzuführen ist, 
lässt sich das auch mit about:config unter

font.name.monospace.x-western
font.name.monospace.x-user-def
font.name.monospace.x-unicode

etc. eintragen.

IE: Extras->Internetoptionen->[Allgemein] aufrufen, dort den Knopf 
"Schriftarten" anklicken und in der rechten Liste auswählen.


Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren