2011-07-21 17 views
11

Creo que hay un método en ruby ​​o rails que hace esto pero no recuerdo dónde encontrarlo o cómo buscarlo, así que esperaba que la sabiduría colectiva de stackoverflow pudiera ayuda. No me importa escribir un método para hacer esto, pero estoy seguro de que alguien tiene una mejor solución.Convertir 1200 a 1.2K en ruby ​​/ rails

+0

No sé de cualquier función de rubí que harán que ese tipo de conversión. Probablemente sea mejor que escriba su propia función para hacerlo por usted. ¡No olvide verificar sus condiciones de contorno! – ean5533

Respuesta

29
number_to_human(1200, :format => '%n%u', :units => { :thousand => 'K' }) 

# 1200 => 1.2K 
5

Si su número pasa a ser la salida 1223 respuesta aceptada sería 1.22K, incluya el parámetro precision reducir esto a 1.2K. Además, si su número podría ser una amplia gama de números en los millones y millones, entonces la mejor manera de atender a estos también:

number_to_human(1200, :format => '%n%u', :precision => 2, :units => { :thousand => 'K', :million => 'M', :billion => 'B' }) 
# => "1.2K" 

number_to_human(1223, :format => '%n%u', :precision => 2, :units => { :thousand => 'K', :million => 'M', :billion => 'B' }) 
# => "1.2K" 

number_to_human(1223456789, :format => '%n%u', :precision => 2, :units => { :thousand => 'K', :million => 'M', :billion => 'B' }) 
# => "1.2B"