¿Acortar números largos a K / M / B?

He buscado mucho en Google pero no puedo encontrar ninguna función útil basada en mis consultas.

Lo que quiero es:

100 -> 100
1000 -> 1,000
142840 -> 142,840

PERO

2023150 -> 2.023M ( i still want 3 additional numbers for more accuracy )
5430120215 -> 5.430B

Agradecería totalmente cualquier función personalizada para elegir dinámicamente el límite si es posible.

¡Gracias!