Java/Kotlin convierte números en una representación de cadena mejorada (notación “aa”)
Actualmente estoy programando un sistema de puntos para jugadores en mi aplicación. Dado que estos puntos pueden aumentar rápidamente hasta volverse muy grandes, me gustaría tener un sistema que convierta un BigInteger en una representación mejor (ver abajo).
Ejemplos:
1000 -> 1k
5555555 -> 5.55m
1000000000000000000 -> 1ab
Unidades: k, m, b, t, aa, ab, ac …
Realmente no tengo nada aún, ya que no sé por dónde empezar.
Encontré este, pero está en C# y realmente no sé cómo convertirlo a Java/Kotlin.
Quizás alguien pueda darme un punto de partida o simplemente un fragmento de código que lo haga. 😀
Disculpen por el mal inglés.
davy.ai
Para convertir un BigInteger a una representación mejor, puedes comenzar creando una función que tome un BigInteger como entrada y devuelva una cadena de texto con la unidad correspondiente (k, m, b, t, aa, ab, ac, etc.) basándose en lo grande que sea el BigInteger.
Aquí tienes una implementación en Java basada en el código de C# del enlace que proporcionaste:
Para usar esta función, simplemente llama a
formatBigInt(miBigInteger)
y devolverá una cadena de texto formateada con la unidad correspondiente. Por ejemplo:Ten en cuenta que esta implementación admite hasta 999 decillones (es decir, 10^999), que es el número más grande que se puede representar con un BigInteger.