2010-11-13 10 views
41

Ruby ha classi o metodi di formattazione che possono essere utilizzati per formattare numeri per cose come valuta, ecc. O ci sono gemme che fanno questo o devi scriverne di propri?Ruby ha classi di formattazione numeriche?

+0

C'è qualche possibilità ci si potrebbe fornire esempi di Pentecoste? La domanda è abbastanza ampia. –

risposta

67

Ruby ha tutti i formattatori di stampa standard, disponibili sia tramite printf, sprintf o utilizzando 'formatstring' % [var1, ...].

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

È possibile utilizzare Kernel#sprintf (o Kernel#format) e farlo in questo modo. API Link.

6

Prova questo:

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

Tratto da un commento di @pguardiario in un similar thread

+2

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

+0

Grazie @ynkr –