Visualizzazione risultati 1 fino 6 di 6

Discussione: Campo inserimento numeri (ed il pi greco???)

  1. #1
    SchoolCommunity non è connesso Utente giovane
    Data registrazione
    30-05-2015
    Messaggi
    46

    Predefinito Campo inserimento numeri (ed il pi greco???)

    In HTML ho un campo in cui si deve inserire dei numeri, ma l'utente deve avere anche la possibilità di inserire pi greco digitando però M_PI o pi().
    Codice HTML:
    <input type='text' name='numeri' required>
    Ora però in php facendo
    Codice:
    $t=$_POST['t'];
    qualsiasi operazione che applico ad esempio:
    Codice:
    $t=$t+2;
    risulta 0 perchè lo considera come stringa.
    Ho provato a fare qualche conversione tra variabili, ma non ho combinato nulla.
    Grazie mille per la collaborazione.

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Viene considerato una stringa perché è una stringa. Se contiene solo cifre, avviene la conversione implicita a numero, ma se ci sono altri simboli (come "M_PI", "p()") la conversione implicita non è possibile.

    Se davvero ti interessa inserire solo numeri, puoi effettuare una sostituzione sintattica in cui ogni occorrenza di "M_PI" viene sostituita con 3.1415..., ma questo non funzionerebbe con stringhe come "2 M_PI", che in questo contesto rappresentano espressioni aritmetiche, non numeri. Se questo è il caso hai bisogno di qualche strumento per il parsing di espressioni aritmetiche.

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    I dati del modulo inviati sono solo stringhe, comunque in base l'html da te fornito con php lo recuperi così $_POST['numeri'];. Ovviamente segui le istituzioni di mazanella.
    @mazanella basterebbe controllare se sia presente almeno una cifra prima di 2 M_Pi altrimenti se è presente soltanto M_PI, se le prime due sono false allora si controlla che sia un numero esiste anche la funzione numerica. Non sono ferrato sul pi greco ma in teoria si può fare credo (ricordandosi le limitazioni di php per la virgola mobile e lo 0 con decimali in caso di operazioni aritmetiche)!
    Ultima modifica di darbula : 25-05-2016 alle ore 22.50.31

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    basterebbe controllare se sia presente almeno una cifra prima di 2 M_Pi altrimenti se è presente soltanto M_PI [...]
    Vero, però dipende da cosa intende accettare come input. Finché gli input accettabili sono nella forma [1-9][0-9]*(\.[0-9]*)?(M_MPI|pi())? basta un'espressione regolare, se iniziano ad esserci stringhe come "1.33 M_MPI 9" (volume di una sfera), che pure rappresentano numeri, serve qualcosa di più raffinato.

    Quindi la domanda diventa: cosa intendi accettare come numero?

  5. #5
    SchoolCommunity non è connesso Utente giovane
    Data registrazione
    30-05-2015
    Messaggi
    46

    Predefinito

    L'utente deve poter inserire anche il valore di pi greco nella forma (M_PI o pi().)

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Sì, questo già era chiaro .
    La domanda era: quali sono le "strutture" accettate per l'input?
    Un conto è accettare solo "cose semplici" come:
    Codice:
    5
    48.5
    pi()
    M_PI
    per cui bastano sostituzioni sintattiche.
    Diverso è accettare anche produzioni come:
    Codice:
    2 pi()
    3.5 M_PI 15
    1.33 pi() pi()
    le quali richiedono un minimo di parsing.

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •