jerexgrz a écrit :
A cause du type .l de la variable c, on a 0. Cependant, si cette variable est du type flottante donc .f, le resultat est correct.
Sauf, que logiquement vu que j'obtiens un resultat sans virgule,le resultat ne devrait il pas etre mis dans la variable .l quand meme ? vu que c'est un ensemble de calculs et non :
c = a/b
c =c *100
10/20 = 0.5 ensuite *100 = 50
j'ai failli me faire avoir
non c'est normal !!
le prg calcul d'abord ce qui se trouve entre parenthèse (ordre des priorités)!!
donc , 10/20=
0.5 , et la précisément il est bien sur des variables type
long
ce résultat provisoire,
il va le stocker !!
il utilise pour cela le type de la variable en cours !
donc il vire ce qui ce trouve apres la virgule !! , il garde
0
puis il continue son calcul en mode
Long
0*100=0 !! qu'il attribut a la variable c !!!
lorsque tu fait exécuter les calculs par des variable, le type Décide du résultat !, heureusement, sinon , il faudrai que PureBasic devine, en quoi tu voudrai le résultat !!
n'oublie pas que tout les calcul sont fait en Binaire !!,
et que le nombre de Bits, qui est pris en compte, est décidé par le Type de la Variable !!
Meme de façon transitoire, si tu sais qu'un calcul peut avoir des virgule, il vaut mieux pour la precision etre en Flottant !!
quitte ensuite a ne garder que la partie entiere
