Nanoton, GRAM y nueve decimales
Toda cantidad en TON es un entero. Un liteserver, una API o un get-method nunca devuelven "1.5 GRAM"; devuelven 1500000000, el número de nanoton, y el cliente decide cómo mostrarlo. Un GRAM — el nuevo nombre de la moneda nativa de TON, antes llamada Toncoin; la red sigue llamándose TON — son 10⁹ nanoton, así que la cantidad mostrada es el entero con la coma decimal movida nueve posiciones a la izquierda:
1 GRAM = 1 000 000 000 nanoton
0.000000001 GRAM = 1 nanoton
1e9 GRAM = 1 000 000 000 000 000 000 nanotonEl conversor hace exactamente eso y nada más: mueve una coma decimal. Aquí no hay tipo de cambio ni consulta a la cadena.
Por qué la herramienta se niega a usar flotantes
Un number de JavaScript es un flotante de 64 bits. Representa enteros con exactitud solo hasta 2⁵³, unos 9,007 × 10¹⁵ — aproximadamente 9 millones de GRAM en nanoton — y no puede representar la mayoría de las fracciones decimales: 0.1 + 0.2 es 0.30000000000000004. Dividir un saldo entre 1e9 y volver a multiplicarlo es por tanto un viaje de ida y vuelta con pérdidas, y una cantidad que difiere en un nanoton sigue siendo una cantidad equivocada en una transacción.
Todo en esta página es aritmética BigInt sobre cadenas decimales. Un valor que no puede representarse en los decimales de la unidad — 0.0000000001 GRAM, una décima de nanoton — es un error, nunca un redondeo. La notación científica se trata igual: 1e9 es mil millones, 2.5e-3 es 0.0025, ambos exactos.
Jettons y decimales
La cantidad de un jetton también es un entero, en la unidad base propia del jetton. Cuántas unidades base forman una unidad de visualización lo definen los decimales del jetton, publicados en sus metadatos — la celda content que devuelve el get-method get_jetton_data del contrato maestro — bajo la clave decimals. Cuando la clave falta, el estándar (TEP-64) dice 9.
USDT en TON usa 6, igual que USDT en otras cadenas: 1 USDT son 1000000 unidades raw. Enviar 1000000000 porque asumiste nueve decimales envía 1.000 USDT, que es el error de unidades más común de la red. Los preajustes cubren USDT y los nueve genéricos; el campo de decimales admite cualquier valor de 0 a 30 para el jetton que estés mirando.
Esta versión no lee los decimales de la cadena. Si no los conoces, lee los metadatos del jetton a través de un liteserver o de un explorador antes de fiarte de un número aquí.
Entrada que acepta el conversor
Dígitos con un punto decimal o una coma decimal (1,5), separadores de miles como espacios, guiones bajos o comas cuando hay un punto (1 000.25, 1,000,000.5), un + inicial y un exponente (1e9, 2.5E-3). Las cantidades negativas se rechazan. La salida es el entero o decimal sin adornos, más una versión agrupada para leerla.
