2011-01-03 2 views
0

ich eine Methode benötigen, die den Maßstab einer BigDecimal Nummer als VariableMethoden der BigDecimal gehen Skala und Präzision

Beispiel erstellt nach unten gehen:

number1 = BigDecimal.new('154.4978') 
number1 => 154.4978 

jetzt möchte ich, dass number1 = 154,49. Wie gehe ich die Skala runter?

+0

'154.4978' gerundet auf zwei Dezimalstellen wäre' 154.50'; Sie sagen, dass Sie die Zahl auf eine bestimmte Anzahl von Dezimalstellen abschneiden oder "unterteilen" möchten? – Phrogz

Antwort

5

Haben Sie versucht, #truncate:

BigDecimal.new('154.4978').truncate(2) # => 154.49 

Es ist alles in der API-Dokumentation: http://rubydoc.info/stdlib/bigdecimal/1.8.7/BigDecimal:truncate

+0

Danke Theo Ihre Antwort lösen meine Zweifel – maxiperez

+0

Sollte dies nicht BigDecimal.new ('154.4978'). Runde (2) sein, so dass Sie am Ende mit 154.50? Bitte erkläre. – richardaday

+0

Das OP fragt ausdrücklich nach Kürzung, nicht nach Rundung. Er sagt, er möchte 154.4978 zu 154.49 werden. Hätte er gesagt, er wollte, dass es 154,50 ist, dann wäre #round angemessen gewesen. – Theo