Comment ne garder que 2 chiffres après la virgule pour une valeur ?
+2
nicephore
captflame2121
6 participants
Page 1 sur 1
Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Bonjour j'arrive à faire afficher le VFAS, l'altitude ...... le problème c'est que je ne trouve pas comment ne faire afficher que par exemple 2 chiffres
après la virgule.
Les valeurs sont bien affichées mais j'ai parfois 8 chiffres après la virgule et cela décale du coup l'affichage.
Quelqu'un à t il un exemple concret car c'est plus facile pour comprendre .
merci encore
après la virgule.
Les valeurs sont bien affichées mais j'ai parfois 8 chiffres après la virgule et cela décale du coup l'affichage.
Quelqu'un à t il un exemple concret car c'est plus facile pour comprendre .
merci encore
captflame2121- Messages : 381
Date d'inscription : 10/06/2019
Age : 47
Localisation : bourgogne
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Bonjour,
Simplement en utilisant math.round(Valeur, Nombre de décimale)
Exemple :
print(math.Round(54.12345, 2))
Donnera 54.12
Simplement en utilisant math.round(Valeur, Nombre de décimale)
Exemple :
print(math.Round(54.12345, 2))
Donnera 54.12
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
merci beaucoup Nicéphore
Je viens de tester et voir si j'y arrivais pour avoir que 2 chiffres
après ma variable alt comme ci dessous :
lcd.drawText(375,60,alt)
j'ai remplacé par
lcd.drawText(375,60,math.Round(alt, 2))
Cela ne fonctionne pas
Je viens de tester et voir si j'y arrivais pour avoir que 2 chiffres
après ma variable alt comme ci dessous :
lcd.drawText(375,60,alt)
j'ai remplacé par
lcd.drawText(375,60,math.Round(alt, 2))
Cela ne fonctionne pas
captflame2121- Messages : 381
Date d'inscription : 10/06/2019
Age : 47
Localisation : bourgogne
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Peut-être parce que tes décimales doivent-être écrites avec un point et non une virgule. La virgule est utilisée pour séparer les arguments donc si tu en rajoutes à cause des décimales, le programme ne comprend plus rien.
Bon courage
Bon courage
Barceque- Messages : 118
Date d'inscription : 27/04/2017
Age : 44
Localisation : Vaucluse
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Bonjour,
Selon la doc de Lua 5.4, il n'y a pas de fonction math.round()
( https://www.lua.org/manual/5.4/manual.html#6.7 )
Ceci explique probablement cela.
Coyotte
Selon la doc de Lua 5.4, il n'y a pas de fonction math.round()
( https://www.lua.org/manual/5.4/manual.html#6.7 )
Ceci explique probablement cela.
Coyotte
_________________
... the alien anthropologists admitted they were still perplexed.
But on eliminating every other reason for our sad demise, they logged the only explanation left :
This species has amused itself to death...
(R. Waters)
Pas de support par MP ! Nous sommes sur un forum pour échanger publiquement.
CoyotteDundee- Administrateur
- Messages : 5886
Date d'inscription : 03/03/2014
Age : 60
Localisation : Montegnée (Liège)
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
_________________
Electrique :
Avions: clik R2 + mini-polyclub en indoor
Planeurs: Gem, Serenity et Typhoon
Hélicos: Trex 450-550
Drones: Wizard X220, Aurora 90 vol à vue+fpv
Thermique :
Extra 300 78'' avec DLE 35RA
Besoin d'infos ? https://opentx-doc.fr/ (co-admin du site avec LapinFou)
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Ha ! Plus de math.round en v 5.4.
Donc dans ce cas passer par math.floor
et écrire une fonction round :
function round(number, decimals)
local power = 10^decimals
return math.floor(number * power) / power
end
Exemple :
Round(54.12345, 2)
Donnera 54.12
Donc dans ce cas passer par math.floor
et écrire une fonction round :
function round(number, decimals)
local power = 10^decimals
return math.floor(number * power) / power
end
Exemple :
Round(54.12345, 2)
Donnera 54.12
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
J'arrive à récupérer la la valeur du VFAS AVEC getvalue(VFAS) dans une variable :
local rx_volt = getValue("VFAS")
Mais j'ai au moins 8 chiffres après la virgule à l'affichage pour rx_volt.
Trop de place et inutile.
Je veux seulement afficher les 2 décimales derrière cette virgule.
La valeur du VFAS est avec une virgule pas un point.
Je veux bien essayer cette fonction mais je ne vois comment intégrer ma variable VFAS dans la fonction round.
DSL
local rx_volt = getValue("VFAS")
Mais j'ai au moins 8 chiffres après la virgule à l'affichage pour rx_volt.
Trop de place et inutile.
Je veux seulement afficher les 2 décimales derrière cette virgule.
La valeur du VFAS est avec une virgule pas un point.
Je veux bien essayer cette fonction mais je ne vois comment intégrer ma variable VFAS dans la fonction round.
DSL
captflame2121- Messages : 381
Date d'inscription : 10/06/2019
Age : 47
Localisation : bourgogne
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Re,
Je crois que tu devrais vraiment commencer par un cours de base en Lua.
Cela te permettrait de maîtriser les notions de base en programmation, sans lesquelles tu vas te retrouver coincé à chaque demi-pas que tu feras, ce qui n'est guère encourageant.
Le site Lua.org est un bon point de départ pour cela.
Coyotte
Je crois que tu devrais vraiment commencer par un cours de base en Lua.
Cela te permettrait de maîtriser les notions de base en programmation, sans lesquelles tu vas te retrouver coincé à chaque demi-pas que tu feras, ce qui n'est guère encourageant.
Le site Lua.org est un bon point de départ pour cela.
Coyotte
_________________
... the alien anthropologists admitted they were still perplexed.
But on eliminating every other reason for our sad demise, they logged the only explanation left :
This species has amused itself to death...
(R. Waters)
Pas de support par MP ! Nous sommes sur un forum pour échanger publiquement.
CoyotteDundee- Administrateur
- Messages : 5886
Date d'inscription : 03/03/2014
Age : 60
Localisation : Montegnée (Liège)
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Très compliqué pour ne faire afficher que 2 décimales .
captflame2121- Messages : 381
Date d'inscription : 10/06/2019
Age : 47
Localisation : bourgogne
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Bonjour pointu,
Merci j'avais vu cette formule mais je n'arrivais pas à l'utiliser correctement.
En fait de ce que l'on récupère dans Companion il y à une virgule dans certaines données et non pas un point.
Du coup Prec1 Prec2 ne fonctionne pas correctement car il ne prends pas la virgule et garde la valeur du chiffre entier.
Pour récupérer les décimales et passer de , à . j'ai fait comme çà:
Par exemple pour le Gsd dans la télémétrie sous Companion
Gspd = 17,3 km / h
Et bien pour le récupérer Gspd et le faire afficher dans une variable et avoir les décimales j'ai dû multiplier par 200 ( écart de x 2 entre Gsd et résultat
Et j'ai div par 10 pour récupérer les décimales :
Merci j'avais vu cette formule mais je n'arrivais pas à l'utiliser correctement.
En fait de ce que l'on récupère dans Companion il y à une virgule dans certaines données et non pas un point.
Du coup Prec1 Prec2 ne fonctionne pas correctement car il ne prends pas la virgule et garde la valeur du chiffre entier.
Pour récupérer les décimales et passer de , à . j'ai fait comme çà:
Par exemple pour le Gsd dans la télémétrie sous Companion
Gspd = 17,3 km / h
Et bien pour le récupérer Gspd et le faire afficher dans une variable et avoir les décimales j'ai dû multiplier par 200 ( écart de x 2 entre Gsd et résultat
Et j'ai div par 10 pour récupérer les décimales :
- Code:
lcd.setColor(CUSTOM_COLOR, lcd.RGB(0,255,0) )
lcd.drawNumber(X_vario+355,Y_vario+9,(GSpd*200)/10,PREC1+SMLSIZE+CUSTOM_COLOR)
captflame2121- Messages : 381
Date d'inscription : 10/06/2019
Age : 47
Localisation : bourgogne
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Bonjour,
Il semble donc que ta valeur soit un string (13,456789)
Pourquoi ne pas la convertir ton string en float avec par exemple:
Float floatVal = Float.valueOf(String_Value)
A voir si ceci peux fon ctionner dans ta version de LUA.
Il semble donc que ta valeur soit un string (13,456789)
Pourquoi ne pas la convertir ton string en float avec par exemple:
Float floatVal = Float.valueOf(String_Value)
A voir si ceci peux fon ctionner dans ta version de LUA.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
pointu a écrit:tu peux aussi utiliser cela :
https://doc.open-tx.org/opentx-2-2-lua-reference-guide/part_iii_-_opentx_lua_api_reference/lcd_functions/drawnumber
Et donc dans cet exemple nous retrouvons bien le round dont je parle plus haut
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Bonjour je vais essayer de le convertir de string en float.
merci
merci
captflame2121- Messages : 381
Date d'inscription : 10/06/2019
Age : 47
Localisation : bourgogne
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
nicephore a écrit:pointu a écrit:tu peux aussi utiliser cela :
https://doc.open-tx.org/opentx-2-2-lua-reference-guide/part_iii_-_opentx_lua_api_reference/lcd_functions/drawnumber
Et donc dans cet exemple nous retrouvons bien le round dont je parle plus haut
Oui oui si tu veux autre chose que 1 ou 2 décimales.
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
La fonction Round est définie comme ceci:
function round(number, decimals)
local power = 10^decimals
return math.floor(number * power) / power
end
Ses paramètres sont:
number = un float comme par exemple : 54.12345
decimals = un integer comme par exemple 2 (il s'agit du nombre de décimale(s) voulu)
Donc l'appel de la fonction comme ceci :
Round(54.12345, 2)
Donnera 2 décimales
et si nous changeons le paramètre decimal et que l'on y passs 4:
Round(54.12345, 4)
Donnera 4 décimales
function round(number, decimals)
local power = 10^decimals
return math.floor(number * power) / power
end
Ses paramètres sont:
number = un float comme par exemple : 54.12345
decimals = un integer comme par exemple 2 (il s'agit du nombre de décimale(s) voulu)
Donc l'appel de la fonction comme ceci :
Round(54.12345, 2)
Donnera 2 décimales
et si nous changeons le paramètre decimal et que l'on y passs 4:
Round(54.12345, 4)
Donnera 4 décimales
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Ici, ce n'est pas comment utiliser la fonction qui pose problème mais le fait que Round() de soit plus disponible en lua 5.4.
D'où les méthodes de substitutions proposées.
D'où les méthodes de substitutions proposées.
_________________
Electrique :
Avions: clik R2 + mini-polyclub en indoor
Planeurs: Gem, Serenity et Typhoon
Hélicos: Trex 450-550
Drones: Wizard X220, Aurora 90 vol à vue+fpv
Thermique :
Extra 300 78'' avec DLE 35RA
Besoin d'infos ? https://opentx-doc.fr/ (co-admin du site avec LapinFou)
Re: Comment ne garder que 2 chiffres après la virgule pour une valeur ?
Mipel a écrit:Ici, ce n'est pas comment utiliser la fonction qui pose problème mais le fait que Round() de soit plus disponible en lua 5.4.
D'où les méthodes de substitutions proposées.
Et oui et c'est bien dommage que certaines fonction ne soit pas / plus disponible en fonction des versions de LUA. Pour les non programmeur c'est pas simple de créer une fonction en adéquation au besoin.
nicephore- Messages : 612
Date d'inscription : 14/06/2014
Localisation : Créteil
Sujets similaires
» Gain : comment calculer valeur pour passer de futaba à taranis
» Comment configurer sa carte FC pour que le drone revienne en RTH après un failsafe
» Quels chiffres pour quelles voies sur X8R
» Widget pour TX16S affichant la valeur d'une seule cellule d'un pack.
» Comment récupérer la valeur d'une variable Bool dans les options d'un widget
» Comment configurer sa carte FC pour que le drone revienne en RTH après un failsafe
» Quels chiffres pour quelles voies sur X8R
» Widget pour TX16S affichant la valeur d'une seule cellule d'un pack.
» Comment récupérer la valeur d'une variable Bool dans les options d'un widget
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum