Ciao a tutti.
Sono un nuovo menbro del forum che spera di riuscire ad imparare bene B4A e apro questa nuova discussione per chiedervi un piccolo aiuto.
Mi spiego brevemente.
Nella mia "app/studio" ho 2 EditText in cui l'utente inserisce un valore numerico. Premendo un bottone si deve ottenere la somma dei dure valori inseriti. Il problema sorge qui: se vengono inseriti valori interi l'"app/studio" funziona perfettamente mentre se si inseriscono valori decimali (uno o entrambi) viene generata una eccezione.
Quindi mi sono chiesto: i valori inseriti nelle EditText vengono considerati "stringhe" dal programma? Se si come faccio a convertirli da stringhe a numeri?
Questo è il codice che ho scritto:
B4X:
Sub totale_Click
Dim valore1 As Float
Dim valore2 As Float
valore1 = addendo1.Text
valore2 = addendo2.Text
risultato.Text = valore1 + valore2
End Sub
Sarebbe bene che tu pubblicassi anche l'eccezione sollevata (suggerimento per la prossima volta).
Il tuo codice è corretto.
Il testo inserito in una EditText è testo, quindi una stringa. Se inserisci una cifra decimale con la virgola, come si usa nel sistema italiano, ottieni un errore, in quanto in b4a, come in tutti i linguaggi, si usa invece il punto come separatore dai decimali.
Inserisci nei tuoi EditText il tipo Input Type DECIMAL_NUMBER, in questo modo non potranno digitare la virgola, ma solo il punto e avrai risolto il problema
Nota però che se imposti il decimal numbers come tipo di input, non potrai immettere la virgola su dispositivi con la lingua italiana (e le altre che la usano) impostata.
A Luuu.. . Se apri excel, e provi a cliccare sulla tastiera numerica del computer il punto, inserisce in automatico la virgola. Penso che anche per l'utente "normale" sia più comodo digitare sulla tastierina numerica ( quella nella foto intendo ) e non sulla tastiera dove ci sono anche le lettere se deve inserire dei numeri.
Comunque.... bene lo stesso
In effetti sarebbe ora che ci adeguassimo allo standard anglosassone.
COMUNQUEEE ...
Stiamo parlando di app; magari, se lo ritrovo, pubblico il codice che utilizzai per risolvere questa cosa (se non ricordo male, semplicemente rilevava il separatore decimale e faceva in modo che sul tastierino SW tu potessi digitare solo il carattere giusto a seconda della "localizzazione". Probabilmente usando qualche codice nell'input type (non da Designer, ovviamente)).
Qui non è questione di moda, ma di standardizzare qualcosa che ci faciliterebbe la vita.
Che poi io voglia decapitare in diretta TV i giornalisti che usano termini inglesi (senza nemmeno saperli pronunciare) e peggio ancora i politici che li usano, magari anche all'interno di leggi ufficiali dello Stato, questo è ovvio