2010-11-13 16 views
41

Czy Ruby ma jakieś klasy lub metody Formatter, które mogą być używane do formatowania liczb takich jak waluty itp., Czy są jakieś klejnoty, które to robią, czy też musisz napisać własną?Czy Ruby ma dowolne klasy formatowania liczb?

+0

jakaś szansa, można dostarczyć nam odrobina przykłady? Pytanie jest dość szerokie. –

Odpowiedz

67

Ruby posiada wszystkie standardowe formatek drukowania, dostępnych za pośrednictwem printf, sprintf lub korzystając 'formatstring' % [var1, ...].

>> '%.2f' % 3.14159 #=> "3.14" 
>> '%4s %-4s' % ['foo', 'bar'] #=> " foo bar " 
5

Możesz użyć Kernel#sprintf (lub Kernel#format) i zrobić to w ten sposób. API Link.

6

Spróbuj tego:

1234567890.123.to_s.reverse.gsub(/(\d{3})(?=\d)/, '\\1,').reverse 
=> "1,234,567,890.123" 

Zrobione z komentarzem przez @pguardiario w similar thread

+2

Trochę zepsute. '1234567890.1234.to_s.reverse.gsub (/ (\ d {3}) (? = \ D) /, '\\ 1,'). Reverse =>" 1 234 567 890,1,234 "' –

+0

Dziękuję @ynkr –

Powiązane problemy