PDA

View Full Version : division décimale



patrice
13-11-2010, 11:08
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
13-11-2010, 12:22
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



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)

patrice
13-11-2010, 15:45
Thank you very much !
That's very sympatic.

Patrice:)

westaust55
13-11-2010, 15:55
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

Chavaquiah
13-11-2010, 19:24
34 // 6 = 4

mais la réponse n'est pas 5.4

Bien sûr non. Mais vous n'avez pas suivi la formule:

b0 // b1 * 10 / b1

34 // 6 * 10 / 6 = 4 * 10 / 6 = 40 / 6 = 6

westaust55
14-11-2010, 13:04
vous êtes correct :o