Discuss Scratch

ILikebeach_FR_
Scratcher
3 posts

Nombre a virgule

Bonjour, j'aimerai savoir si il est posssible de verifier si un nombre a un nombre apres la virgule ou pas ? Y'a -t-il un solution
Merci
SBissay
Scratcher
500+ posts

Nombre a virgule

Oui.

si <([plancher v] de (x)) = (x)> alors 
c'est un entier
sinon
c'est un nombre à virgule
end

Generative art :              Pivot  :               Sudoku :
ILikebeach_FR_
Scratcher
3 posts

Nombre a virgule

Merci je test ca directement, je vous donne des nouvelles dès que possible
smrman
Scratcher
1000+ posts

Nombre a virgule

Oui, parfaitement.

Prenons l'exemple de SBissay.

Le nombre x vaut 4.99999
Plancher de 4.9999 vaut 4 (logique, c'est son plancher)
4 = 4.9999 Non
C'est donc un nombre à virgule

Je peux affirmer que 4.9999 est un réel.

Last edited by smrman (Oct. 18, 2017 16:50:32)


SBissay
Scratcher
500+ posts

Nombre a virgule

smrman wrote:

Oui, parfaitement.

Prenons l'exemple de SBissay.

Le nombre x vaut 4.99999
Plancher de 4.9999 vaut 4 (logique, c'est son plancher)
4 =? 4 Oui
C'est un entier.

Je peux affirmer que 4.9999 est un entier.
Heu…
Plancher de 4.99999 = 4 != 4.99999 et 4.9999 n'est pas entier, voyons.

Ça m'étonne de ta part (ou alors il y a une ironie que je n'ai pas saisie).

Generative art :              Pivot  :               Sudoku :
smrman
Scratcher
1000+ posts

Nombre a virgule

Alors nous n'avons pas la même version de Scratch….

Edit:
Oups, ma faut, j'ai utilisé le bloc
([plafond v] de (4.99))

Trop de précipitation

Last edited by smrman (Oct. 18, 2017 16:53:46)


SBissay
Scratcher
500+ posts

Nombre a virgule



Ça fonctionne comme voulu, a priori… Je suis curieux de savoir en quoi ça peut dérailler selon les versions de scratch, ceci dit.

Edit : aaaaaaaaaaaaaaaah, tout s'éclaire

Last edited by SBissay (Oct. 18, 2017 16:54:34)


Generative art :              Pivot  :               Sudoku :
smrman
Scratcher
1000+ posts

Nombre a virgule

Je pense que si on met trop de nombres après la virgule, la façon dont le nombre est stocké (notation scientifique) fait changer la valeur…

SBissay
Scratcher
500+ posts

Nombre a virgule

Après, ça peut effectivement poser un problème si l'on veut considérer le nombre 4 + somme de i allant de 1 à + infini des 9/10^i qui est effectivement un entier (et même 5, pour l'occasion), mais que la troncature décimale par la mémoire va faire considérer comme un non entier (au passage, réel n'est pas le contraire d'entier, tous les entiers sont réels ), mais bon…

…faut vraiment avoir que ça à fiche pour se servir des développements décimaux impropres…

Generative art :              Pivot  :               Sudoku :
SBissay
Scratcher
500+ posts

Nombre a virgule

smrman wrote:

Je pense que si on met trop de nombres après la virgule, la façon dont le nombre est stocké (notation scientifique) fait changer la valeur…

Non, le problème ne se situe pas après la virgule (sauf le cas dégénéré que j'ai cité ci-dessus), mais avant :

le stockage en flottant permet une précision de n chiffres significatifs (je n'ai plus la valeur exacte en mémoire et j'ai la flemme de chercher). Si notre nombre a besoin d'au moins n chiffres significatifs avant la virgule, la partie fractionnaire passe à la trappe et il est considéré comme un entier…

Generative art :              Pivot  :               Sudoku :
SBissay
Scratcher
500+ posts

Nombre a virgule

Et je le prouve :

Generative art :              Pivot  :               Sudoku :
smrman
Scratcher
1000+ posts

Nombre a virgule

The Number data type uses the 64-bit double-precision format as specified by the IEEE Standard for Binary Floating-Point Arithmetic (IEEE-754). This standard dictates how floating-point numbers are stored using the 64 available bits. One bit is used to designate whether the number is positive or negative. Eleven bits are used for the exponent, which is stored as base 2. The remaining 52 bits are used to store the significand (also called the mantissa ), which is the number that is raised to the power indicated by the exponent.
Voilà ce qui concerne la docu sur l'Action Script… Langage qui fait tourner Flash Player, donc Scratch 2.0

En gros on a un entier stocké sur 64 bits, avec 52 bits pour la mantisse, soit pas mal de nombres après la virgule.
En résumé, c'est vrai, faut y aller pour tromper le système.

ILikebeach_FR_
Scratcher
3 posts

Nombre a virgule

Wow ! Calmez vous les genie de scratch !







Powered by DjangoBB