Lua roblox fonctions separation mathematique

Résolu/Fermé
Drake - 11 sept. 2022 à 15:00
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 13 sept. 2022 à 21:55

Bonjour a tous,

Pour l'un des indicateurs de la centrale nucléaire que je construit sur Roblox j'aurait besoin d'une fonction pouvant couper en deux une valeur, numérateur et dénominateur.

Ex :

Ma valeur est de 34 DONC j'obtiens :

A = 3

B = 4

Si une personne s'y connait en Lua ou en programmation Roblox, je suis preneur, merci.

5 réponses

yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 Ambassadeur 1 552
11 sept. 2022 à 15:23

bonjour,

Quel autre résultat souhaites-tu obtenir?  Quelle instruction as-tu utilisé?

0

Actuellement j'ai pensé a quelque chose comme Valeur/10,

Le problème c'est que je n'ai aucune fonction me permettant de demander de garder d'un coté l'unité et de l'autre le chiffre après la virgule.

0
yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552
11 sept. 2022 à 15:48

 3 et 4, c'est ce que tu obtiens, ou ce que tu souhaites obtenir?

Connais-tu l'opérateur Modulus?

0

Modulus non? Et c'est ce que je souhaite obtenir en sortir de l'operation j'entre 34 et il sépart les deux nombres.

0
yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552
12 sept. 2022 à 06:57

Je pense que l'opérateur % va t'aider.

0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
Modifié le 12 sept. 2022 à 18:22

Salut Drake,

Je ne suis pas expert en Lua, mais une façon de faire est comme cela :

valeur = 34
a = valeur // 10
b = valeur % 10
print("a", a)
print("b", b)

donne :

a	3
b	4

Testé sur https://www.lua.org/cgi-bin/demo

% est l'opérateur modulo que te suggère d'utiliser yg_be. Cet opérateur donne le reste de la division entière et permet d'obtenir l'unité dans ton cas en divisant par 10.

Pour obtenir la dizaine, tu dois obtenir la partie entière seulement avec la division par 10. Tu dois donc utiliser non pas l'opérateur de division /, mais l'opérateur de division entière //.


 

Edit : Il semble donc que Lua dispose bien d'un opérateur de division entière qui rend superflue l'usage d'une fonction d'arrondi, bien que // ne paraisse pas mentionné ici http://www.lua.org/manual/5.2/manual.html#3.4.1

0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
Modifié le 12 sept. 2022 à 18:30

En fait, si je comprends bien, il semble que l'opérateur // soit une introduction au langage Lua à partir de la version 5.3 selon cette documentation https://www.lua.org/manual/5.3/manual.html#3.4.1 (la version actuelle est Lua 5.4.4).

Avant, il fallait se contenter de / et passer par la fonction mathématique math.floor() pour arrondir et ne garder que l'unité (cf. la doc de Lua 5.2 dont j'avais initialement posté l'URL dans mon premier message), et le code devient :

valeur = 34
a = math.floor(valeur / 10)
b = valeur % 10
print("a", a)
print("b", b)

Si la version de base de Lua utilisée par ton jeu en ligne est antérieure à l'introduction de l'opérateur // tu peux faire comme ci-dessus.

0
yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 1 552 > [Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024
12 sept. 2022 à 18:29

Peut-être plus simple et plus intuitif:

valeur = 34
b = valeur % 10
a = (valeur - b) / 10
print("a", a)
print("b", b)
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092 > yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024
12 sept. 2022 à 18:35

Ce code affiche :

a	3.0
b	4

avec Lua 5.4.4 ...

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Je vous remercie de vos réponses j'essayerai ça demain, en attendant je vous tient au courant et merci beaucoup a vous tous. ^^

0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
13 sept. 2022 à 21:55

Si ton problème est résolu, peux-tu mettre ton sujet en "résolu" (clique sur les "..." en bas de ton sujet initial).

0