2016-07-22 11 views
0

Code aus einem Programm zu verwenden, ich bin neu Beitrag zu, fand ich heraus, dass Division fast nie verwendet wurde, zugunsten oder Multiplikation von Floats.Warum würde jemand Multiplikation mit Float anstelle von Division

Ein exemple wäre, wenn solche schwimmen zu mitteln versucht, wie:

float a = 0.42; 
float b = 0.666; 

float c = (a + b) * 0.5; 

Klar, dass die Absicht von zwei bis mittleren a und b

jedoch zu unterteilen ist, altho einfach finde ich die Verwendung von * 0.5 etwas schädlich für die Lesbarkeit (vor allem semantische) im Vergleich zu den folgenden:

float c = (a + b)/2; 

Whi ch produzieren genau das gleiche Ergebnis.

Gibt es einen Grund, warum ich in diesem Fall * 0.5 statt / 2 verwenden möchte?

Vorgeschlagene Duplikate zeigen an, dass die Multiplikation schneller ist; Das wird offensichtlich falsch, wenn eine Optimierungsstufe verwendet wird (Und ja, wir kompilieren mit Optimierungen)

Die Frage ist über C++, aber andere Sprachen Antworten könnten auch hilfreich sein.

+1

Ich bin nicht so sicher über die dup. Während es einen Unterschied zwischen Multiplikation und Division gibt, beinhaltet es nicht den Vorteil, Multiplikation vs Division zu verwenden. – Antzi

+0

(abgesehen von "Ich versuche, meinen Compiler-Optimierung Job zu tun") – Antzi

+0

Wenn Sie nicht mit dem Betrogenen zufrieden sind, verbessern und erarbeiten Sie Ihre Frage. –

Antwort

1

In den meisten Fällen kommt es nur auf persönlichen Vorlieben oder allgemeinen Kodierungsstil an. Nehmen wir an, wir ändern Werte sehr, nur um mit den Ausgabewerten herumzuspielen, wenn wir mit einer Funktion herumspielen, um zu sehen, wie sie sich verhält. Da sich die Werte ändern können, macht es das Multiplizieren mit einem Gleitkomma leichter, einfach zu einer Zahl zu wechseln, die nicht sinnvoll wäre, als Division zu schreiben.

Ein weiterer Vorteil der Multiplikation mit einem Gleitkomma ist, dass die Trunkierung in Richtung Null vermieden werden kann, was beim Teilen von zwei Ints passieren kann.

Verwandte Themen