Lors de la multiplication d'un nombre à virgule flottante qui est très proche de 1, avec un int > 0, peut-il jamais être interprétée comme 1.
C'est, si Math.random()
retourne son plus haut résultat possible (qui est l'étape 1 ci-dessous 1.0), sera
(int)(Math.random() * 8)
être 8 ou 7?
Pour un exemple pratique, cela peut-il souvent utilisé en construire de donner un indice en dehors des limites d'erreur:
someArray[(int)(Math.random() * someArray.length)];
Je suis particulièrement intéressé par les réponses pour Java et ActionScript 3, mais je suppose qu'ils utilisent tous les mêmes règles pour l'arithmétique à virgule flottante, et les réponses de la plate-forme serait utile.
Mise à jour: même Si j'ai déjà accepté une réponse, je serais encore apprécier la confirmation que cela ne peut pas aller de mal en ActionScript 3, puisqu'un collègue de rapports qu'il le voyait mal se passer une fois qu'est ce que la partie qui m'a poussé à poser cette question.