Empresas · Guía práctica documentada
Normalizar un importe con Decimal no lo deja escrito con dos decimales
Separar el valor calculado del formato evita confundir una exportación.
Un programa que prepara importes puede necesitar tanto comparar valores como mostrar una columna uniforme. Decimal.normalize reduce los ceros finales y puede emplear notación exponencial. La documentación también advierte que aplica el redondeo del contexto antes de esa reducción. No es una instrucción para imprimir siempre céntimos.
Ejemplo propio: partimos del texto 120.00. Su valor normalizado puede mostrarse como 1.2E+2. Sigue representando ciento veinte; no es una cantidad nueva ni un error de moneda. Si un destinatario espera ver 120.00, la normalización y la presentación están resolviendo necesidades diferentes.
Para reproducir el caso, conserva por separado el texto recibido, el Decimal creado desde ese texto y la cadena que se exporta. Usa un contexto suficiente para el cálculo. Un formato fijo con dos posiciones puede producir 120.00 para la salida visual, mientras el valor interno sigue disponible para operaciones posteriores.
Una comprobación útil añade tres entradas ficticias: 120.00, 120 y 1.20E+2. Compara primero sus valores y después sus representaciones. Si el sistema las cuenta como importes distintos únicamente por la cadena, el problema está en la comparación textual. Si necesita conservar cómo se recibió cada documento, guarda también el original en otro campo.
La pauta sirve para una herramienta de gestión, pero no determina reglas fiscales de redondeo ni valida facturas reales. El formato de pantalla no sustituye la política de cálculo. Identificar ambos pasos permite explicar por qué desaparecieron ceros sin atribuir una diferencia económica inexistente.