Contexto
En sistemas financieros y de nómina, un error en el tipo de datos o un mal uso de los operadores produce fallas silenciosas graves:
- Una división de dos variables enteras (
int / int) descarta los decimales sin redondear, perdiendo horas o fracciones monetarias esenciales. - Olvidar la palabra clave
finalen una tarifa permite que cualquier línea posterior altere un valor que debía ser inmutable. - Confundir operadores lógicos puede dejar a un empleado sin su bonificación legítima o asignar fondos indebidos.
Como arquitecto de software, aprender a dominar los tipos de datos fundamentales y las operaciones básicas en Java es la base que te garantiza construir cálculos deterministas y confiables.
Consigna
Escribí el programa CalculadoraMetricas.java que realice el procesamiento salarial y operativo de un período de trabajo siguiendo las reglas descriptas.
1. Constantes y Variables
Declaralas dentro de main:
public class CalculadoraMetricas {
public static void main(String[] args) {
// Constantes inmutables
final double TARIFA_HORA_BASE = 3200.0;
final int HORAS_JORNADA_ESTANDAR = 8;
final double BONO_DESEMPENO = 15000.0;
// Variables del período
int diasTrabajados = 20;
int totalHoras = 175;
char calificacion = 'A';
boolean turnoNocturno = true;
// Continuá con los cálculos...
}
}
2. Puntos Clave a Considerar
- División entera vs con decimales: si hacés
totalHoras / diasTrabajados, Java evalúa175 / 20como tipoint, resultando en8en lugar de8.75. Debés forzar la conversión de al menos un operando:(double) totalHoras / diasTrabajados. - Evaluación de reglas con cortocircuito: utilizá operadores
&&(AND) y||(OR) agrupando con paréntesis para que la prioridad de las condiciones exprese fielmente la regla de negocio. - Casting explícito estrecho (narrowing): para simular el pago en efectivo entero, convertí el total decimal con
(long) sueldoTotal. Documentá en un comentario por qué esta conversión pierde información.