¿Cuál es el redondeo predeterminado para 8 dígitos en Binance, tradingview, etc.?

Tengo un problema. Me cuesta calcular mediante programación la cantidad de criptomonedas porque a veces tengo imprecisiones en el último dígito. ¿Alguien sabe cuál es el problema? (Por supuesto, he calculado las tarifas correspondientes que necesita). Por ejemplo, Binance usa precisión para 8 dígitos. ¿Cuál es el redondeo que usaron? Agradecería una respuesta si alguien tiene el conocimiento adecuado sobre este asunto.

RoundingMode.CEILING
RoundingMode.DOWN
RoundingMode.FLOOR
RoundingMode.HALF_DOWN
RoundingMode.HALF_EVEN
RoundingMode.HALF_UP
RoundingMode.UNNECESSARY
RoundingMode.UP
Actualmente estoy depurando exactamente el mismo comportamiento que usted describe en este problema. Mi saldo de ETH no cuadra si se compara con mis propios cálculos. Por el momento, asumo que Binance no acredita el monto total del depósito (por ejemplo, 14 decimales) al saldo de la cuenta, sino que lo reduce a la precisión que usan internamente (por ejemplo, 8 decimales). Si lo aplico RoundingMode.DOWN como modo de redondeo, mis resultados se vuelven válidos. Sin embargo, todavía estoy buscando obtener alguna confirmación al respecto.

Respuestas (1)

No debe haber ningún redondeo porque todas las operaciones son operaciones enteras. Los 8 dígitos se deben a que calculan usando la unidad base de Bitcoin, el satoshi, que es 0.00000001 Bitcoin (8 dígitos). Se calcula como un número entero (es decir, el cálculo usa satoshis, no Bitcoin) multiplicado por un número entero por el número de bytes, por lo que el resultado también será un número entero. Luego, el decimal regresa a medida que cambian el punto decimal para representar el valor en Bitcoin. No hay redondeo involucrado, si lo hay, estás haciendo algo mal.

¿Está totalmente seguro de que los mercados como Binance o Gdax.etc hacen el mismo cálculo como este?
No hay razón para no hacer el cálculo de esta manera. Si no realizan operaciones con números enteros, introducen la posibilidad de errores de precisión de coma flotante que pueden hacer que sus clientes pierdan dinero.
Los intercambios tienen errores de redondeo.