Resultado do casting duplo para int está errado
Parece haver algum tipo de erro de arredondamento obscuro quando executo o seguinte código:
int roundedTotal = (int)(PriorityJob * 100.0);
InicialmentePriorityJob = 1.4
eroundedTotal
é indefinido. AvaliandoPriorityJob * 100.0
nesse ponto dá140
. DepoisroundedTotal = 139
.
Aparentemente, o 140.0 está sendo interpretado como 139.99999. Isso é uma deficiência no mecanismo de ponto flutuante? Eu nunca vi nada assim.