division décimale

patrice

New Member
Bonjour,

j'aimerais effectuer l'opération suivante :
12/5=2.4
Comment récupérer la valeur entière (2) dans une variable1 et
la partie décimale (4) dans une autre variable2 ?

Je crois que ce sujet peut en intéresser beaucoup d'autres, si vous utilisez l'instruction ADC0 entre autre.

merci par avance

Patrice
 

Chavaquiah

Senior Member
La première partie est simple:

12 / 5 = 2 (nombres entiérs seulement)

Pour les décimaux, lors que le Picaxe ne connait que des entiérs, il faut "inventer" un peu. On peut multiplier tous les nombres par 10, pour avoir une place décimale (x100 = 2 décimales, etc.).

On peut obtenir le reste de la division avec "%" (ou "//"):

12 % 5 = 12 // 5 = 2

(2 x 10) / 5 = 4

Code:
b0 = 28
b1 = 5
b2 = b0 / b1              ' = 5
b3 = b0 // b1 * 10 / b1   ' 28 // 5 = 3
                          ' 3 x 10 = 30
                          ' 30 / 5 = 6
sertxd (#b0, " / ", #b1, " = ", #b2, ".", #b3)
 

westaust55

Moderator
The method proposed is not currect for decimal values

Take for instance:

34 / 6 = 5.6

par PICAXE
34 / 6 = 5

34 // 6 = 4

mais la réponse n'est pas 5.4

SI vous employez une variable de mot

résultat = 34 * 10 / 6 = 56

puis

56/10 = 5

56 // 10 = 6

pour une valeur finale de

5.6
 
Last edited:
Top