Gambas-it

Gambas3 => Programmazione => Topic aperto da: vuott - 22 Dicembre 2015, 09:48:07

Titolo: [Risolto] Verifica su simbolo della moneta
Inserito da: vuott - 22 Dicembre 2015, 09:48:07
Un membro del forum gambas-es.org ci chiede di testare questo codice:
Codice: [Seleziona]
Public Sub Main()
 Dim cantidad As Float
 
 cantidad = 12.56
 
 Print "Símbolo monetario: " & Split(Format(cantidad, "$#.##"), " ")[1]
 Print "Moneda: " & Split(Format(cantidad, "$$#.##"), " ")[1]
 
End
per conoscere il risultato dei sistemi operativi che hanno l'impostazione locale italiana.

Se cortesemente potete effettuare la prova, ed indicare appresso il vostro risultato. Provvederò io a comunicarlo al nostro amico spagnolo.

Grazie.
Titolo: Re:Verifica su simbolo della moneta
Inserito da: Gianluigi - 22 Dicembre 2015, 10:50:09
Così come lo ha postato a me non funziona o meglio mi restituisce la quantità, per avere su Ubuntu 14.04.3 e Gambas3 3.8.4 il risultato del simbolo e della moneta occorre che split legga lo zero:

Codice: [Seleziona]
Dim cantidad As Float
 
 cantidad = 12.56
 
 Print "Símbolo monetario: " & Split(Format(cantidad, "$#.##"), " ")[0]
 Print "Moneda: " & Split(Format(cantidad, "$$#.##"), " ")[0]
'' Console:
' --> Símbolo monetario: €
' --> Moneda: EUR
 
Titolo: Re:Verifica su simbolo della moneta
Inserito da: vuott - 22 Dicembre 2015, 11:16:54
per avere su Ubuntu 14.04.3 e Gambas3 3.8.4 il risultato del simbolo e della moneta occorre che split legga lo zero
Sì, hai ragione.
Titolo: Re:[Risolto] Verifica su simbolo della moneta
Inserito da: Picavbg - 22 Dicembre 2015, 13:06:20
Prova eseguito col codice originale su Ubuntu e Gambas-3.8.1:
Citazione
Codice: [Seleziona]
Public Sub _new()
Dim cantidad As Float
 
 cantidad = 12.56
 
  Print "Símbolo monetario: " & Split(Format(cantidad, "$#.##"), " ")[1]
 Print "Moneda: " & Split(Format(cantidad, "$$#.##"), " ")[1]
End
esito Console:
Citazione
Símbolo monetario: 12,56
Moneda: 12,56

Prova eseguita con la modifica proposta da Gian Luigi :
Citazione
Codice: [Seleziona]
Public Sub _new()
Dim cantidad As Float
 
 cantidad = 12.56
 
  Print "Símbolo monetario: " & Split(Format(cantidad, "$#.##"), " ")[0]
 Print "Moneda: " & Split(Format(cantidad, "$$#.##"), " ")[0]
End
esito Console:
Citazione
Símbolo monetario: €
Moneda: EUR

Prova con ulteriore modifica mia:
Citazione
Codice: [Seleziona]
Public Sub _new()
Dim cantidad As Float
 
 cantidad = 12.56
 
  Print "Símbolo monetario: " & Split(Format(cantidad, "$#.##"), " ")[0]
 Print "Moneda: " & Split(Format(cantidad, "$$#.##"), " ")[1]
End
esito Console:
Citazione
Símbolo monetario: €
Moneda: 12,56
Titolo: Re:[Risolto] Verifica su simbolo della moneta
Inserito da: kicco - 22 Dicembre 2015, 13:22:16
 :ciao:
Picavbg confermo!
Titolo: Re:[Risolto] Verifica su simbolo della moneta
Inserito da: Gianluigi - 22 Dicembre 2015, 13:59:30
Io non so se tutte le nazioni adottano un simbolo monetario, credo comunque che con quelle che usano caratteri latini il simbolo venga messo prima della cifra e quindi non comprendo come possa in Spagna funzionare con Split che legge la seconda stringa.
Infatti se noi scriviamo:

Codice: [Seleziona]
Print Format(cantidad, "$#.##")
Print Format(cantidad, "$$#.##")
'' Otteniamo:
' --> € 12,56
' --> EUR 12,56

Il simbolo monetario e la moneta come prima stringa separate da uno spazio alla cifra in seconda posizione.  :-\

PS: Pare che quanto ho appena sostenuto non sia così, non c'è una regola (https://it.wikipedia.org/wiki/Simboli_di_valuta) precisa ma un consiglio che parrebbe dar ragione a shell.
     Vedere nota 6 della pagina di Wikipedia.
Titolo: Re:[Risolto] Verifica su simbolo della moneta
Inserito da: Gianluigi - 22 Dicembre 2015, 21:57:21
@vuott
Vedo che hai scritto risolto, ma come? Così?:

Codice: [Seleziona]
Dim cantidad As Float, vS, vM As Variant
 
 cantidad = 12.56
 
 vS = Split(Format(cantidad, "$#.##"), " ")[0]
 vM = Split(Format(cantidad, "$$#.##"), " ")[0]
 If IsNumber(vS) Then 
    vS = Split(Format(cantidad, "$#.##"), " ")[1]
    vM = Split(Format(cantidad, "$$#.##"), " ")[1]
 Endif
 Print "il simbolo è " & vS & ", e la moneta è " & vM

Mi rispondo da solo: Domanda scema, non mi ero accorto che il topic spagnolo era su due pagine  ;D
Complimenti per la tua semplice e geniale soluzione  :D
Che se postavi anche qui mi evitava tutto questo  >:(