Teilen Sie durch Ruby! Warum ist es 0?

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).

Seien Sie vorsichtig, wenn die Anzahl der Antworten gering ist

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?

Was ist ein Programm?

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

Wie rechnen Sie?

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.

Verwenden Sie die to_f-Methode

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

Teilen Sie durch Ruby! Warum ist es 0?
Warum Schulen Ruby lernen
Warum PreventDefault benötigt wird
[Zusammenfassung] Warum objektorientiert machen?
Was ist ein Ruby-Modul?
Es wurde durch Rendern gegeben
Warum Kotlin so bequem ist
[Ruby] Wofür wird `!!` verwendet?
[Ruby] Was ist eine Instanz?
[Ruby] Warum "json" erforderlich ist, wird "json" zulassen
[Für Anfänger] Ruby soll Rubin sein, aber was ist damit?
[Rails] Warum wird gerendert, wenn das Speichern erfolgreich ist und redirect_to fehlschlägt?