Dim Valor As String
Valor = Replace("€ 1.234,56", " ", "")
Valor = Replace(Valor, "€", "")
Valor = Replace(Valor, ".", "")
Valor = Replace(Valor, ",", ".")
Valor = CFloat(Valor)
Per ora riesco ad eliminare due passaggi:
Public Sub Main()
Dim s As String = "€ 1.234,56"
Dim valor As String
valor = Scan(s, "* *")[1]
Print CFloat(Val(valor))
End
Attenzione che gb.currency è insidioso, vedi http://gambaswiki.org/wiki/comp/gb/gb/currency?l=it
Meglio usare:
Format(1234.56, "$,0.00")
:ciao:
P.S. Dimenticavo, anche io preferisco dove possibile usare "interi" ti rimando a questo post:
https://www.gambas-it.org/smf/index.php?topic=7868.msg48590#msg48590
e se posso permettermi di rispondere alla domanda per vuott:
Non serve usare scan basta val:
Dim valor As String = "1.234,56"
Print CFloat(Val(valor))
Le funzioni sono molte; una potrebbe essere:
Public Sub Main()
Dim bb As Byte[]
Dim b As Byte
Dim f As Float
bb = Byte[].FromString("€ 1.234,56")
Repeat
If bb[b] And 16 Then
Inc b
Else
bb.Remove(b)
Endif
Until b == bb.Max
f = bb.ToString() / 100
Print f
End