El resultado de lanzar doble a int es incorrecto
Parece que hay algún tipo de error de redondeo oscuro cuando ejecuto el siguiente código:
int roundedTotal = (int)(PriorityJob * 100.0);
InicialmentePriorityJob = 1.4
yroundedTotal
es indefinido. EvaluandoPriorityJob * 100.0
en ese punto da140
. DespuésroundedTotal = 139
.
Aparentemente, 140.0 se interpreta como 139.99999. ¿Es esta una deficiencia en el motor de punto flotante? Nunca he visto nada igual.