[Basic] Bug Rnd

Bonsoir

Les fonctions Rnd, Random, ou quel que soit leur nom renvoient normalement un nombre supérieur ou égal à 0 et strictement inférieur à 1.
L'aide LibO (comme OOo) précise :

Fonction Rnd [Exécution]
Renvoie un nombre aléatoire entre 0 et 1..../...
La fonction Rnd renvoie uniquement des valeurs comprises
entre 0 et 1.

Ce qui n'est pas très clair concernant 0 et totalement faux concernant 1 :

Sub TestRnd
Dim i As Long, nb As Long
    For i = 1 To 1000000
        if rnd() = 1 Then nb = nb + 1
    Next i
    msgbox STR(i) & " occurences à 1"
End Sub

Testé en 3.4.2.
La fréquence d'apparition de 1 est hallucinatoire...

Le bug est connu et déjà référencé sur Bugzilla : http://openoffice.org/bugzilla/show_bug.cgi?id=116920

Bonne soirée.

NB : le forum où il n'est pas de bon ton d'aller y consacre deux posts ce jour suite à une remontée d'utilisateur

Erreur :

Libo ne reproduit pas

Et msgbox STR(nb) & " occurences à 1" serait plus adapté...

:wink:

Testé sous Ubuntu 10.04 et LO 3.3.3 : aucune occurrence [occurrence avec 2 c et 2 r] à 1 et aucune occurrence à 0 non plus, même avec 10 millions d'occurrences. Et accessoirement, pourquoi utiliser la fonction STR ? On obtient le même résultat sans.