Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

Convertir UITextfiel en chiffre pour un calcul (swift)

Discussion dans 'Développement iOS' créé par paranormal-wizzzard, 31 Juillet 2018.

  1. paranormal-wizzzard

    paranormal-wizzzard Membre d’élite

    Inscrit:
    26 Août 2013
    Messages:
    1 274
    J'aime reçus:
    74
    Bonjour,

    Je suis entrain de créer ma première application iPhone.
    Elle permettra de faire des calculs de dosages pour les liquides de cigarettes électroniques...

    J'ai presque fini, mais je bloque sur un truc.
    Je dois convertir une donnée UITextfield dans le but de pouvoir l'intégrer à un calcul, sinon xCode me dit :
    Voici :
    Code (Text):
    let mlArome = (Double(liquidetotalText!)!/100) * Double(pourcentagearomeText!)!
    (en gros les mL d'arôme sont égaux à la N% de la quantité de liquide totale)

    Auriez-vous une astuce pour convertir UITextfield ou bien écrire cette formule différemment ?

    PS : je mets Double sachant qu'il peut y avoir des décimales suivant ce que rentre l'utilisateur...
     
  2. byte_order

    byte_order Membre confirmé

    Inscrit:
    31 Juillet 2012
    Messages:
    216
    J'aime reçus:
    39
    Double() ne sait pas convertir directement depuis un UITextField, mais depuis une chaine, si.
    Il suffit juste d'utiliser .text sur le UITextField.

    Code (Text):
    let mlArome = (Double(liquidetotalText.text!)!/100) * Double(pourcentagearomeText.text!)!

    Bon, idéalement, faut d'abord vérifier que le champ saisi par l'utilisateur est bien convertisable en Double avant tout :

    Code (Text):

    guard let liquidetotal = Double(liquidetotalText.text!) else {
       print("Not a valid number: \(liquidetotalText.text!)")
       return
    }
    guard let pourcentagearome= Double(pourcentagearomeText.text!) else {
       print("Not a valid number: \(pourcentagearomeText.text!)")
       return
    }

    let mlArome = liquidetotale*pourcentagearome/100!
     
     
    #2 byte_order, 1 Août 2018
    Dernière édition: 1 Août 2018
  3. paranormal-wizzzard

    paranormal-wizzzard Membre d’élite

    Inscrit:
    26 Août 2013
    Messages:
    1 274
    J'aime reçus:
    74
    J'ai beau essayer d'écrire d'une manière où d'une autre je n'y arrive pas GRRRR
    Il y a toujours un soucis, soit un mélange entre UITextfield et Int, soit un mélange entre Double et Int...
    Je sais plus quoi faire...
    Voici mon code :
    Capture d’écran 2018-08-01 à 15.07.14.png
     
  4. jean512

    jean512 Membre confirmé

    Inscrit:
    8 Septembre 2016
    Messages:
    348
    J'aime reçus:
    54
    problème résolu ?

    il faut convertir tout en "type Double" puis faire le calcul.
    il faut aussi penser à bloquer le clavier pour entrer uniquement des chiffres
    et pour récupérer une valeur d'un textfield c'est : UITextField.text
     
  5. paranormal-wizzzard

    paranormal-wizzzard Membre d’élite

    Inscrit:
    26 Août 2013
    Messages:
    1 274
    J'aime reçus:
    74
    Oui problème résolu en créant un fonction qui dit que ces données sont toutes des doubles.
    Par contre pour bloquer le clavier en chiffre, je ne vois pas cette option dans le menu déroulant (il y a uniquement date...)
    Pour récupérer la valeur maintenant c'est bon aussi de cette manière :
    Code (Text):
    (mlDeTrucText.text!)!
     
Chargement...

iOccasion - Achetez un produit Apple d'occasion

refurb Apple