Italian formattazione valori numerici

insoft

Member
Licensed User
Buongiorno a tutti.
Sono al mio primo progetto B4A e chiedo aiuto per un problema che mi assilla. In un db sqlite ho un campo reail contenente un importo - es. 1250,45.
Lo voglio visualizzare ed eventualmente far modificare all'utente tramite un edittext o un maskedittext.
La mia domanda è (so che è da principiante) come faccio ha traformarlo da 1250.45 che ho sul db ha un campo con la virgola e magari con i decimali separatori delle migliaia e una volta che mi hanno modificato il valore come eseguire l'operazione contraria per salvarlo nel db? Ma poi ho anche un altro problema : se definisco la tastiera come numerica al massimo mi mostra il punto e non la virgola per i decimali - c'è modo di cambiare la cosa o devo usare la tastiera alfanumerica completa.

Voi come vi comportate.
Grazie a tutti e scusate per il tempo che vi faccio perdere.

Massimo
 

Star-Dust

Expert
Licensed User
B4X:
Dim Fl As Float = 1250,45
Dim S As String = Fl
   
Log(Fl)
S=S.Replace(",",".")
Log(S)
Guarda i risultati dei log.
 

Star-Dust

Expert
Licensed User
Alternativa 1

B4X:
Dim Fl As Float = 1250,45
log(Fl)
log(Adapt(FL)
' tuo codice

Sub Adapt(Number as Float) as String
  Dim S As String = Fl
  Return S=S.Replace(",",".")
End Sub
Alternativa 2
B4X:
Dim Fl As Float = 1250,45
log(Fl)
log(Adapt(FL)
' tuo codice


Sub Adapt(Number as String) as String
  Return Number.Replace(",",".")
End Sub
 

insoft

Member
Licensed User
B4X:
Dim Fl As Float = 1250,45
Dim S As String = Fl
  
Log(Fl)
S=S.Replace(",",".")
Log(S)
Guarda i risultati dei log.
Grazie per la risposta.
Immagino che per risalvarlo sul db faccio il contrario.
Mi resta il dubbio per la tastiera - chiaramente devo far apparire quella completa alfanumerica perché su quella solo numerica mi permette di digitare solo il punto e non la virgola come separatore dei decimali.

Giusto o c'è qualche trucco che io non conosco.

Grazie ancora a tutti.
Massimo
 

Star-Dust

Expert
Licensed User
va bene la tastiera alfanumerica. Il risultato te lo restituisce in stringa che puoi trasformare con il replace.
 

udg

Expert
Licensed User
Puoi anche dare un'occhiata a IME.SetCustomFilter dove definisci i "caratteri validi" per un determinato EditBox.
 

insoft

Member
Licensed User
Puoi anche dare un'occhiata a IME.SetCustomFilter dove definisci i "caratteri validi" per un determinato EditBox.
Grazie, era solo perché pensavo si potesse in qualche maniera settare la tastiera numerica in modalità "italiana" cioè con i dieci numeri e la virgola. Comunque ancora grazie a tutti, faccio qualche prova con i vostri consigli e se ho ancora dubbi vi disturberò ancora.
Massimo
 

Star-Dust

Expert
Licensed User
Grazie, era solo perché pensavo si potesse in qualche maniera settare la tastiera numerica in modalità "italiana" cioè con i dieci numeri e la virgola. Comunque ancora grazie a tutti, faccio qualche prova con i vostri consigli e se ho ancora dubbi vi disturberò ancora.
Massimo
Tutto é possibile, ma non sempre semplice. Questo é più semplice.
Cmq se vuoi cerca sul forum la libreria IME e puoi settare la testiera che vuoi.....
 
Last edited:

insoft

Member
Licensed User
Tutto é possibile, ma non sempre semplice. Questo é più semplice.
Cmq se vuoi cerca sul forum la libreria IME e puoi settare la testiera che vuoi.....

Minimo
Grazie anche se non ho capito la tua firma.
Massimo e il mio nome.
Seguirò il tuo consiglio sulla libreria Ime

Ciao e grazie.
 
Top