Es wäre schön, ein Äquivalent von Rs signif zu haben Ruby.
Zum Beispiel:
%Vor%Es gibt wahrscheinlich einen besseren Weg, aber das scheint gut zu funktionieren:
%Vor% Ich sehe in Float nichts dergleichen. Float ist meistens ein Wrapper für den nativen double
-Typ und angesichts der üblichen binären / dezimalen Probleme bin ich nicht so überrascht, dass Float es nicht erlaubt, die signifikanten Ziffern zu manipulieren.
BigDecimal in der Standardbibliothek versteht jedoch Signifikante Ziffern, aber ich sehe nichts, was Ihnen erlaubt, die signifikanten Ziffern in einem BigDecimal direkt zu ändern: Sie können danach fragen, aber Sie können es nicht ändern. Sie können dies jedoch umgehen, indem Sie eine No-Op-Version der Methoden mult
oder add
verwenden:
Das zweite Argument dieser Methoden:
Wenn angegeben und kleiner als die Anzahl der signifikanten Stellen des Ergebnisses, wird das Ergebnis entsprechend
BigDecimal.mode
auf diese Anzahl von Stellen gerundet.
Die Verwendung von BigDecimal ist zwar langsamer, aber möglicherweise die einzige Wahl, wenn Sie feingranulare Steuerung benötigen oder wenn Sie die üblichen Gleitkomma-Probleme vermeiden müssen.
Sie suchen wahrscheinlich nach Rubys Decimal .
Sie könnten dann schreiben:
%Vor%Oder wenn Sie die gleiche Syntax verwenden möchten, fügen Sie dies als Funktion zum Float der Klasse hinzu:
%Vor%Die Verwendung wäre dann dieselbe, d. h.
%Vor%Um es zu verwenden, installiere den Edelstein
%Vor%Tags und Links ruby floating-point significant-digits