CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Déclaration de variable type 'number' en js

Highscore
Highscore
Niveau 7
24 octobre 2017 à 12:23:12

Bonjour à tous,

Je viens vous demander votre aide pour un petit soucis que je rencontre en JS.

Je suis en train de faire une fonction qui doit calculer le périmètre d'une forme définie par des mesures entrées pas l'utilisateur.
J'ai fait ceci, qui fonctionne comme je le veux :


//L3 & H2
var l1 = document.getElementById('l_un').value;
l1=l1*1;
var l2 = document.getElementById('l_deux').value;
l2=l2*1;
var l3 = document.getElementById('l_trois').value;
l3=l3*1
var h1 = document.getElementById('h_un').value;
h1=h1*1;
var h2 = document.getElementById('h_deux').value;
h2=h2*1;
//On cherche quel coté est le plus grand
if (l3 > h2) { var prixD = calc_price_decoupe_spe(l3);}
else { var prixD = calc_price_decoupe_spe(h2);}
//Calcul du rodage
var rodageM = l1 + h1 + l2 + h2 + l3 + h2 + (l1-l2-l3) + h1;

Mon problèmes se pose lors du calcul du rodage, en effet si je ne réalise pas ma ligne consistant a multiplié la valeur récupérée par 1, la somme n'est pas effectuée, les nombres sont simplement concaténés, alors qu'il sont correctement comparé, dans la partie juste avant (On cherche quel coté est le plus grand).

N'y aurait il pas directement moyen de déclarer mes var en type "number" de manière a m'éviter cette petite "astuce" qui, je trouve, ne fait pas très propre.

Merci à ceux qui prendront le temps de lire !

Message édité le 24 octobre 2017 à 12:23:34 par Highscore
Tacha-tepoilu
Tacha-tepoilu
Niveau 12
24 octobre 2017 à 12:25:58

Il n'y pas de typage en Javascript, mais tu peux utiliser la fonction parseInt

DrazonYT
DrazonYT
Niveau 5
24 octobre 2017 à 17:13:47

Pour facotirser ton code, tu peux faire comme ceci (désolé je suis sur mobile) :

var l1 = Number(tonElementRecupéré.value);
Idem pour l2 l3 etc...

Number va transformer ton objet string (la chaîne entrée par l'utilisateur) en objet number.

Par contre attention, la chaîne entrée doit correspondre à un chiffre/nombre.

Ex : "12" "-12" "12,2" "12.2" "-12,2" "-12.2" sont acceptés.
Par contre "1 2" ne sera pas accepté, ta variable contiendra un NaN.

Donc vérifie bien que l'utilisateur n'entre pas d'espaces (pour les milliers, centaines de milliers, millions etc).

:ok:

DrazonYT
DrazonYT
Niveau 5
24 octobre 2017 à 17:25:56

Edit : les virgules ne sont pas acceptées. Donc en plus de vérifier les espaces, vérifie ces dernières :p)

lisarael
lisarael
Niveau 13
24 octobre 2017 à 21:24:39

À ma connaissance, tu as 4 possibilités pour convertir une String en Number en javascript :

var foo = new Number( variable );

var foo = Number( variable );

var foo = parseInt( variable, base ); // omettre la base revient à lui donner la valeur 10, mais attention aux bugs sur les strings qui commencent par 0, faussement attribuées à des nombres en base octale par certains environnements

var foo = +variable;
Highscore
Highscore
Niveau 7
25 octobre 2017 à 10:25:11

Merci lisarael ! Pile ce que je recherchais!

Bonne journée a tous !

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment