Italian formattazione valori numerici

insoft

Member
Licensed User
Longtime 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
Longtime 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
Longtime User
Puoi anche dare un'occhiata a IME.SetCustomFilter dove definisci i "caratteri validi" per un determinato EditBox.
 

insoft

Member
Licensed User
Longtime 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
Longtime 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