Hier ist ein sehr einfacher Ansatz. Verfolgen Sie, wie oft Sie die Zahl um 10 multiplizieren müssen, bevor sie der entsprechenden Ganzzahl entspricht:
%Vor%Sie sollten sehr vorsichtig sein mit dem, was Sie wollen. Fließkommazahlen eignen sich hervorragend für wissenschaftliche Zwecke und funktionieren meistens im täglichen Gebrauch, aber sie zerfallen ziemlich stark, wenn Sie etwas wissen wollen wie "wie viele Stellen hinter der Dezimalstelle" - nur, weil sie insgesamt etwa 16 Stellen haben , nicht alle davon enthält genaue Daten für Ihre Berechnung. (Oder, einige Bibliotheken könnten beim Formatieren einer Zahl für die Ausgabe tatsächlich genaue Daten gegen das Ende der Zahl wegwerfen, mit der Begründung, dass "gerundete Zahlen freundlicher sind". Was, obwohl oft zutreffend, bedeutet, dass es ein bisschen gefährlich sein kann verlassen sich auf formatierte Ausgabe.)
Wenn Sie die Standard-Gleitkommazahlen durch die Klasse BigDecimal
ersetzen können, um beliebig genaue Gleitkommazahlen zu erhalten, können Sie die "rohe" Zahl überprüfen:
Natürlich, wenn der Wechsel zu BigDecimal
Ihre Anwendung zu langsam macht oder offensichtlich zu mächtig für das ist, was Sie benötigen, könnte dies Ihren Code übermäßig komplizieren, ohne dass Sie davon profitieren. Sie müssen entscheiden, was für Ihre Anwendung am wichtigsten ist.
Tags und Links ruby ruby-on-rails