Italian Formattare con separat migliaia e virgola decimali (modo italiano)

Sabotto

Active Member
Licensed User
Certo. la guardo anche io.. Meglio Portogallo comunque...(imho)
 

LucaMs

Expert
Licensed User
Longtime User
Certo. la guardo anche io.. Meglio Portogallo comunque...(imho)
E' un pronostico difficile.

A me piace molto Bernardo Silva, del Portogallo (scontato dire anche Ronaldo), ma il Belgio ha molti giocatori buoni (Lukaku, De Bruyne, Mertens, il portiere Courtois...), ottima organizzazione, gran fisico e resistenza.

Credo che sul piano del gioco "vincerà" il Belgio; poi esistono anche fortuna e sfortuna, quindi non si può mai dire. Un po' come Italia-Austria, in cui l'Austria ha giocato meglio dell'Italia per il 60% del tempo ma ha perso (se non fosse stato per un alluce austriaco in fuorigioco...! )
 

TILogistic

Expert
Licensed User
Longtime User
prova
B4X:
Public Sub TestFormatter
    Dim out As String
    
    out = out & CRLF & SetFormmatter("12345.678", 2)
    out = out & CRLF & SetFormmatter("3.45", 2)
    out = out & CRLF & SetFormmatter("123", 2)
    out = out & CRLF & SetFormmatter("2456000.3", 2)
    
    Log(out)
End Sub

Public Sub SetFormmatter( Value As String, Decimal As Int) As String
    Dim formatter As B4XFormatter
    formatter.Initialize
    formatter.GetDefaultFormat.GroupingCharacter = "."
    formatter.GetDefaultFormat.DecimalPoint = ","
    formatter.GetDefaultFormat.MaximumFractions = 2
    formatter.GetDefaultFormat.MinimumFractions = 2
    formatter.GetDefaultFormat.Prefix = "$"
    formatter.GetDefaultFormat.IntegerPaddingChar = "*"
    formatter.GetDefaultFormat.MinimumIntegers = 12
    
    Dim Data As Double = Round2(Value.Replace(",","."), 2)
    Return formatter.Format(Data)
End Sub

$******12.345,68
$***********3,45
$*********123,00
$***2.456.000,30
 

TILogistic

Expert
Licensed User
Longtime User
prova
B4X:
Public Sub TestFormatter
    Dim out As String

'    String
    out = out & CRLF & SetFormmatter("12345,678", 2)
    out = out & CRLF & SetFormmatter("3,45", 2)
    out = out & CRLF & SetFormmatter("123", 2)
    out = out & CRLF & SetFormmatter("2456000,3", 2)
    
'    Numeric
    out = out & CRLF & SetFormmatter(12345.678, 2)
    out = out & CRLF & SetFormmatter(3.45, 2)
    out = out & CRLF & SetFormmatter(123, 2)
    out = out & CRLF & SetFormmatter(2456000.3, 2)

    Log(out)
End Sub
 

LucaMs

Expert
Licensed User
Longtime User
Questo, in realtà, sarebbe il formato italiano più corretto:

123˙456˙789,13€

con il simbolo di valuta a destra e il punto per le migliaia in alto.

Anzi, veramente sarebbe questo:

123˙456˙789,13£

con il simbolo della povera, vecchia lira £
 

TILogistic

Expert
Licensed User
Longtime User
B4X:
ublic Sub TestFormatter
    Dim out As String

'    String
    out = out & CRLF & SetFormmatter("12345,678", 2)
    out = out & CRLF & SetFormmatter("3,45", 2)
    out = out & CRLF & SetFormmatter("123", 2)
    out = out & CRLF & SetFormmatter("2456000,3", 2)
    
'    Numeric
    out = out & CRLF & SetFormmatter(12345.678, 2)
    out = out & CRLF & SetFormmatter(3.45, 2)
    out = out & CRLF & SetFormmatter(123, 2)
    out = out & CRLF & SetFormmatter(2456000.3, 2)

    Log(out)
End Sub

Public Sub SetFormmatter(Value As String, Decimal As Int) As String
    Dim Formatter As B4XFormatter
    Formatter.Initialize
    Formatter.GetDefaultFormat.GroupingCharacter = "˙"
    Formatter.GetDefaultFormat.DecimalPoint = ","
    Formatter.GetDefaultFormat.MaximumFractions = 2
    Formatter.GetDefaultFormat.MinimumFractions = 2
    Formatter.GetDefaultFormat.Postfix = "£"
    'Formatter.GetDefaultFormat.IntegerPaddingChar = "*"
    'Formatter.GetDefaultFormat.MinimumIntegers = 12
    
    Dim Data As Double = Round2(Value.Replace(",","."), 2)
    Return Formatter.Format(Data)
End Sub


12˙345,68£
3,45£
123,00£
2˙456˙000,30£
12˙345,68£
3,45£
123,00£
2˙456˙000,30£
 

Sabotto

Active Member
Licensed User
si ma il mistero dello zip che ho inviato vorrei proprio capirlo.
Due routine uguali, perche una funziona e una no?!?
 

LucaMs

Expert
Licensed User
Longtime User
si ma il mistero dello zip che ho inviato vorrei proprio capirlo.
Due routine uguali, perche una funziona e una no?!?
"Semplicemente" perché nella routine Prova hai:
B4X:
    s2.Replace(",","A") ' sostituisco la virgola con carattere A
    s2.Replace(".","B") ' sostituisco il punto con carattere B
    s2.Replace("A",".") ' sostituisco la A col punto
    s2.Replace("B",",") ' e la B con la virgola
e quelle righe non "sostituiscono..." se non assegni la stringa restituita dalla funzione Replace alla variabile, come invece hai fatto nel codice nell'Activity_Create:
B4X:
    s2=s2.Replace(",","A") ' sostituisco la virgola con carattere A
    s2=s2.Replace(".","B") ' sostituisco il punto con carattere B
    s2=s2.Replace("A",".") ' sostituisco la A col punto
    s2=s2.Replace("B",",") ' e la B con la virgola
 

Star-Dust

Expert
Licensed User
Longtime User
l'avevo scritto mezza giornata fa, ma @Sabotto scrive le domande ma non legge le rispo6o quantomeno non lo fa con attenzione
 
Last edited:

Sabotto

Active Member
Licensed User
l'avevo scritto mezza giornata fa, ma @Sabotto scrive le domande ma non legge le rispo6o quantomeno non lo fa con attenzione
Hai ragione, ma non avendo notato l'evidenziazione col colore, pensavo che erroneamente avevi solo ripostato il mio codice. Chiedo scusa, però, come disse Checco Zalone al prete, ("ma tu sei prete?... e miett nu caxx d collett!!!") io ti dico, "e miett nu caxx d comment!!!" ...
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…