Je ne sais pas si tu a déjà essayer mais en JS tu peux parse n'importe quelle valeur en float ou int comme ça :
Bonjour,
Voila je rencontre un petit problème avec mon code , je fait une petite application de gestion dépenses avec React Native et firebase
, lors de l'ajout d'une dépense , je saisi la somme dans un input , mais react native l'enregistre comme une string, donc quand je l'enregistre dans firebase je veux qui le transforme en chiffre entier ou décimal , mais cela fonctionne que pour les chiffres entier , ma question c'est comment faire avec une librairie ou autre qui transforme ma chaine en int , ou float automatiquement ? , merci à vous pour votre aide
Ce que je fais
addDepense() {
let depense = {
userId: this.state.userId,
title: upperFirst(this.state.title),
date: this.state.date,
somme: toNumber(this.state.somme),
recurrenceName: this.state.recurrenceName,
recutrenceId: this.state.recurrenceId,
categorie: this.state.categorieName,
description: upperFirst(this.state.description)
};
const db = firebase.firestore();
db.collection('depenses').add(depense);
Actions.depenses();
}
6 réponses
Merci pour ta réponse , mais le truc c'est que défois c'est un chiffre entier ou a virgule , se sont des sommes , et sachant que le input retourne une string , je recherche une methode pour convertir ma chaine en int ou float automatiquement
Hey, il existe includes pour détecter si quelque chose est contenue dans une autre tu pourrais t'en servir sa donnerai un truc du genre :
Bonsoir Shizey merci pour ta réponse , j'ai tenté ça
maleuresement quand c'est un nombre à virgule ça ne fonctionne pas , je précise bien que dans mon state c'est bien par exemple "20,50" en string , il me le transforme en 20 , et pas pas en 20.50 en float , quand je test aprés le render , il me return bien true quand je fait
parseFloat ne fonctionne pas il ne fait rien
Bonsoir, après verification, le test pour verifier si il s'agit d'un nombre à virgule ou non est innutile puisque le parseFloat gère aussi bien les décimales que les entiers. J'espère que cela pourra t'aider dans ta demarche.
oui exact je viens de trouver la solution , enfaite il faut remplacer la virgule par un point ,merci à toi de m'avoir aiguiller