Das richtige Verhalten wäre nicht für einen Compiler, nicht-suffixed Literale als Float mit einfacher Genauigkeit zu interpretieren, sondern zu erkennen, dass Konvertierungen von Double in Float als Erweiterung Konvertierungen betrachtet werden sollten, da für jeden double
Wert gibt entweder genau eine eindeutig korrekte float
Darstellung, oder (in einigen seltenen Randfällen) wird es genau zwei gleichwertige Werte geben, von denen keiner mehr als ein Teil pro Billiarde davon sein wird, der eindeutig korrekte Wert zu sein. Semantisch betrachtet, sollten Konvertierungen von float
zu double
als verkleinerte Konvertierungen angesehen werden (da sie erfordern, dass der Compiler bei Informationen, die er nicht hat, "rät"), aber die praktischen Schwierigkeiten könnten dazu führen, dass Konvertierungen in diese Richtung "verbreitert" werden.
Vielleicht sollte man Microsoft eine Petition hinzufügen, um eine Erweiterung der Konvertierung von double
zu float
hinzuzufügen?Es gibt keinen guten Grund, warum Code, der Grafikkoordinaten als double
berechnet, beim Aufruf von Zeichenfunktionen mit Typumwandlungen überladen sein sollte.
Komm schon! Wie viele Float-Konstanten müssen Sie definieren? Wenn Sie mehrere haben, verwenden Sie einfach die Befehle Suchen und Ersetzen für die paar Male. – leppie
Ich stimme @leppie zu. Sie sollten Literale wirklich so begrenzen. Wenn Sie viele Standardzuweisungen vornehmen und der Wert normalerweise identisch ist, verschieben Sie sie in eine statische interne Klasse und verweisen Sie auf diese Weise. Außerdem können Sie in Kleinbuchstaben f anstelle von Großbuchstaben F ein Float-Literal angeben, wodurch Sie einen Umschalt-Tastenanschlag sparen. Falls es dich interessiert. :) – Randolpho
Ich bin neugierig, warum jemand jemals Floats statt Doubles verwenden würde. Kannst du uns von deiner "Anzahl der Gründe" erzählen? –