French Division par zéro

scrat

Active Member
Licensed User
Longtime User
Bonjour

Avec tous les compilateurs que j'ai utilisés une division par zéro lève une exception ou crash le programme.

Avec B4A aucune exception n'est levée semble t'il.

Dans mon cas le resultat de la division est arrondi a un entier puis stocké dans un int.

Avec la division par zéro le résultat semble être un LongInt qui vient écraser la mémoire voisine, et provoque un comportement aléatoire du programme.

Le seul contournement possible est de tester chaque diviseur avec <if diviseur = 0>

Vous avez déja rencontré ce problème ?
Bug B4A ou Android ?
 

logemag

Member
Licensed User
Longtime User
effectivement, je sais pas si ça vient d'un bug de B4a ou d'un problème java mais si on dimensionne un Integer ou un Long, ça renvoie une valeur, alors que si on dimensionne un double ou un float la valeur devient Infinity :

exemple :

B4X:
' je dimensionne les reels
Dim a = 1 As Int 
Dim b = 0 As Int

' je dimensonne les variables
Dim c = a / b As Int
Dim d = a / b As Long
Dim e = a / b As Float   
Dim f = a / b As Double 

' je verifie les resultats   
Log("c = " & c)   
Log("d = " & d)
Log("e = " & e)
Log("f = " & f)

retourne dans le Logs :
c = 2147483647
d = 9223372036854775807
e = Infinity
f = Infinity

??
 
Top