IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

récupérer le chiffre en entier issus d'un chiffre avec une puissance extrait d'un csv


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut récupérer le chiffre en entier issus d'un chiffre avec une puissance extrait d'un csv
    Salutation tout le monde!!!

    Voila je travail en php sur la récupération de données issus de fichier sous format CSV. J'arrive sans problème à extraire les données mais je me suis aperçu d'un truc. De base j'extrais ces fichiers d'internet et j'effectuais des requêtes sql avec certaines données. Quand je venais d'extraire les fichiers et que je les ouvraient avec mon script tout fonctionnait niquel. Mais une fois j'en ai modifié un et du coup plus rien de fonctionne. En gros je me suis aperçu que la modification du fichier à modifié tout mes numéro imei dans ce fichier. De base quand on extrait les fichiers ils sont sous le bon format c'est à dire en entier alors qu'après avoir modifié (et enregistré) le fichier ils se transforment en ce format : "3,58829E+14". Et donc je voulais savoir s'il n'y avait pas un moyen d'obtenir leur vrai format par exemple "345432765784352". Voila j'espère que j'ai été clair si ce n'est pas le cas dîtes le moi. J'espère qu'il y a une solution car pour l'instant je n'ai rien trouvé :/.

    Merci d'avance pour votre aide .

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour,

    D'habitude c'est parce que les cellules dans lesquelles ils se trouvent sont au format standard qu'Excel décide d'utiliser la notation scientifique pour l'affichage des grands nombres.
    Essaie de passer ces cellules au format nombre, avec ou sans décimales, selon tes besoins.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Merci EddiGordo pour ta réponse!
    En effet j'avais omis ce petit détail et cela devient tout de suite plus clair . J'ai fait la modification et ça fonctionne. Mais y a t-il pas un moyen en php pour traiter ce genre de problème ? Car je voudrai juste éviter de demander à l'utilisateur de changer le format de la colonne si jamais il modifie le fichier CSV.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Ah bin là désolé mais une fois l'export effectué depuis Excel, le mal est fait et les données dans le csv sont déjà tronquées; il n'y a plus de matière pour retrouver les valeurs d'origine.

    Peut être peux-tu écrire une macro dans le fichier excel qui force le format et effectue l'export csv et indiquer aux utilisateurs d'utiliser ladite macro.
    Tu peux peut-être également tester en lisant le fichier depuis ton service php et le rejeter si tu détectes des lignes avec des E+ avec un code erreur style "Mauvais format de fichier" ou un autre message du genre ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    3,58829E+14 : Attention ! il faut remplacer la virgule par un point (format US).

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nombre = '3,58829E+14';
    echo number_format( str_replace(',','.',$nombre), 0 ,'.' ,'' );

    Voir :

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    EddiGordo:

    Ah je savais pas du tout qu'il tronquerai les valeurs du coup c'est vraiment dommage . Par contre c'est vrai et je n'y avais pas pensé mais je vais mettre en place une détection de ce type de format et je notifierai l'utilisateur de changer le format de la colonne. Car vu que je n'ai pas fait de VBA depuis un bon moment je vais utilisé le php^^. Et c'est un fichier CSV que l'utilisateur télécharge depuis internet et il l'insérer dans mon application. Mais en tout cas merci .

    jreaux62:

    Ahhh merci !!! C'est une bonne solution que tu me donne et que j'ai cherché hier sans résultat. Et merci ça fonctionne bien le seul hic c'est que je crois que l'on est confronté au même problème c'est à dire que la valeur est tronqué. Exemple de base j'ai ce chiffre "358129058972816" et excel me sors ceci: "3,58129E+14" et du coup avec ta solution j'obtiens "358129000000000". Donc je pense que c'est le problème des valeurs tronquées et je sais pas si l'on peut résoudre ce genre de problème. Ah moins qu'il y ai une solution^^.

    Encore merci pour vos réponses!

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La seule solution c'est d'utiliser un fichier excel au lieu d'un csv.

    Dans toutes les autres méthodes pour préserver le nombre, si l'utilisateur resaisi quelque chose sans faire attention, on retombe sur le problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    je pense à vrai dire ce nombre correspond à un ID et pas à un numérique en tant que tel : dans ce cas le fichier excel est mal formaté : cette colonne devrait être au format texte et pas en auto-detect.
    Une autre soluce pour forcer le format texte sous Excel, c'est de faire précéder le nombre par '
    Après il y a une dernière soluce : utiliser libreoffice ou openoffice qui eux exportent proprement en CSV sans faire la moindre cuisine...

Discussions similaires

  1. [WB19] Récupérer un code source entier
    Par blitzcut dans le forum WebDev
    Réponses: 2
    Dernier message: 10/10/2014, 12h06
  2. Gestion d'entiers issus d'un QSpinBox
    Par athietar dans le forum Débuter
    Réponses: 2
    Dernier message: 10/12/2013, 15h05
  3. [MEX] passer et récupérer des tableaux d'entiers
    Par ol9245 dans le forum MATLAB
    Réponses: 15
    Dernier message: 05/10/2012, 11h26
  4. Nombre de chiffres d'entiers regroupés
    Par nina2007 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 26/03/2012, 15h16
  5. [LG]Former un nombre entier à partir de chiffre naturel.
    Par lecanardjaune dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2003, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo