Existe-t-il un moyen simple d'analyser une chaîne en entier ou en flottant si je ne sais pas si la variable est un nombre entier ou un nombre décimal?Convertir une chaîne en nombre entier ou float en javascript
a = '2'; // => parse to integer
b = '2.1'; // => parse to float
c = '2.0'; // => parse to float
d = 'text'; // => don't parse
EDIT: Il semble ma question manquait le contexte nécessaire: Je veux faire des calculs sans perdre le format d'origine (format original signifie donc entier par rapport à flotteur Je ne me soucie pas du nombre initial de décimales. places):
Exemple:
String containing the formatted number ('2') => parse to number (2.0) => do some calculations (2.0 + 1 = 3.0) => restore "original format" ('3' and not '3.0')
Si l'entrée était de 2,0 au lieu, le résultat recherché serait '3.0' (et non '3').
Pourquoi vous wan't pour analyser? Javascript a un typage dynamique. De plus, le seul type numérique est double. –
@david a .: Merci d'avoir signalé cela. Je n'étais pas au courant de ça. Je me demande toujours pourquoi il y a deux fonctions (parseInt, parseFloat) en JavaScript s'il n'y a qu'un seul type numérique. – am2124429
Je pense que la différence est juste comment les deux analysent l'entrée - 'parseInt()' ne prend que la partie entière de celui-ci, tandis que 'parseFloat()' prend la décimale (et peut-être l'exposant). Ils, cependant, retournent tous les deux le même type (nombre, qui est en fait un type à virgule flottante). Voir les spécifications des numéros JS ici: http://www.ecma-international.org/ecma-262/6.0/index.html#sec-terms-and-definitions-number-value. MSDN mentionne la même chose ici: https://msdn.microsoft.com/library/7wkd9z69(v=vs.94).aspx#Anchor_4 –