Sorgfältig von Anfang an die Fallstricke der Teilung (Teilung). Nehmen wir als Beispiel Ruby. Die Einführung und Erklärung sind sehr lang. Die Schlussfolgerung lautet [hier](verwenden Sie die Methode #to_f).
Angenommen, Sie möchten "80 ÷ 100" ausführen. Die erwartete Antwort lautet "0,8" (oder eine gleiche Anzahl) ...
80 / 100
=> 0
0 wird zurückgegeben. Warum?
Dies liegt daran, dass die vorherige Berechnung als "Berechnung zwischen ganzen Zahlen" betrachtet wird. Ich denke, "es ist zwischen ganzen Zahlen", aber die Berechnung von ganzen Zahlen und ganzen Zahlen gibt nur ganze Zahlen zurück.
Zum Beispiel ist "101 ÷ 100" auch dasselbe. Ich möchte, dass Sie "1.01" als Antwort zurückgeben, aber es wird wie folgt sein.
101 / 100
=> 1
Um die erwartete Antwort zu erhalten, müssen Sie einige Ziffern in Ihre Berechnung einbeziehen. Sie müssen sagen: "Berechnen Sie als Minderheit, nicht als Ganzzahl!" Es ist wichtig zu wissen, dass diese im Programm unterschiedlich sind, auch für Berechnungen, denen Sie nicht täglich besondere Aufmerksamkeit schenken.
Sie können beispielsweise feststellen, dass eine kleine Anzahl von Ziffern in der Berechnung enthalten ist, indem Sie Folgendes schreiben:
80.0 / 100
=> 0.8
Du kannst schreiben
80 / 100.0
=> 0.8
Sie können natürlich schreiben
80.0 / 100.0
=> 0.8
Aber es ist gut.
Das war's. Aber was ist, wenn dies eine Variable ist? Ich würde gerne die folgende Methode kennen, um mit einer solchen Situation umzugehen.
Die Methode "to_f" kann verwendet werden, wenn Sie sie in Ruby als "Minderheit" behandeln möchten. "F" bedeutet "f" von float, "Gleitkommazahl". (Dies ist auch ein einzigartiges Konzept, aber da es viele Artikel gibt, auf die verwiesen werden kann, werde ich es Ihnen geben.) Nun, wie man es benutzt, füge einfach "to_f" nach dem numerischen Wert hinzu (Variable ist OK).
80.to_f / 100
=> 0.8
Du kannst schreiben
80 / 100.to_f
=> 0.8
Sie können natürlich schreiben
80.to_f / 100.to_f
=> 0.8
Aber es ist gut.
Mit dieser Methode ist es in Ordnung, Variablen zu empfangen.
n = 80
n.to_f / 100
=> 0.8
Sie haben die erwarteten Ergebnisse erzielt.
Recommended Posts