Formatear enteros grandes

Las criptomonedas suelen usar muchos decimales; Ethereum, por ejemplo, usa 18. Al trabajar con dinero, convertir un entero grande mediante un tipo de punto flotante puede hacer que se pierdan dígitos.

Escribe una función que reciba un BigInteger no negativo y la cantidad deseada de decimales. Devuelve una cadena de texto con el punto decimal insertado a esa cantidad de dígitos desde la derecha. Conserva todos los dígitos exactamente.

Ejemplos

Program.formatBigInt(new BigInteger("1938908490185852058934"), 18) ⟞ "1938.908490185852058934"

Program.formatBigInt(new BigInteger("987654321987654321"), 6) ⟞ "987654321987.654321"

Program.formatBigInt(new BigInteger("13902183984901849081284"), 12) ⟞ "13902183984.901849081284"

Notas

  • Devuelve una cadena de texto, no un valor de punto flotante.
  • No realices la conversión mediante un tipo de punto flotante.