Tipo de problema
Bug
Descripción
La función roundTo usa int(f*100+0.5) para redondear, lo cual produce resultados incorrectos con valores negativos. La biblioteca estándar de Go proporciona math.Round que maneja correctamente estos casos.
Localización
internal/report/json.go:L506-L515
Impacto
Informes de costes con valores negativos (créditos, reembolsos) mostrarán valores redondeados incorrectos.
Evidencia
func roundTo(f float64, decimals int) float64 {
pow := math.Pow(10, float64(decimals))
return float64(int(f*pow+0.5)) / pow // Incorrecto para negativos
}
Sugerencia de solución
Reemplazar con math.Round(f * pow) / pow.
Detectado por
QA Agent / Calidad Agent
Tipo de problema
Bug
Descripción
La función
roundTousaint(f*100+0.5)para redondear, lo cual produce resultados incorrectos con valores negativos. La biblioteca estándar de Go proporcionamath.Roundque maneja correctamente estos casos.Localización
internal/report/json.go:L506-L515Impacto
Informes de costes con valores negativos (créditos, reembolsos) mostrarán valores redondeados incorrectos.
Evidencia
Sugerencia de solución
Reemplazar con
math.Round(f * pow) / pow.Detectado por
QA Agent / Calidad Agent