Italian Convertire un numero in euro

Sberla

Active Member
Licensed User
Longtime User
Salve gente vorrei convertire un numero in euro.

Vi faccio un esempio se ho "1" voglio ottenere "1.00", oppure "0.5" diventa "0.50".

Esiste una funzione che fa questo?
 

udg

Expert
Licensed User
Longtime User
Prova con
NumberFormat (Number AsDouble, MinimumIntegers AsInt, MaximumFractions AsInt) AsString

quindi, nel tuo caso:
B4X:
Log(NumberFormat(1,0,2))

udg
ps: ho provato ad inserire del codice un po' piu' complesso ma ricevo un errore dal webserver di cui ho dato notizia al webmaster.

Edit: riporto qui ciò che appare provando ad immettere un semplice d1=1.0 nella sezione code.

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
 
Last edited:

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
e questo per i centesimi:
B4X:
Log(NumberFormat(0.5,1,2))
 

udg

Expert
Licensed User
Longtime User
NumberFormat2 (Number AsDouble, MinimumIntegers AsInt, MaximumFractions AsInt, MinimumFractions AsInt, GroupingUsed AsBoolean) AsString
Converts the specified number to a string.
The string will include at least Minimum Integers, at most Maximum Fractions digits and at least Minimum Fractions digits.

Con questa risolvi. Il quarto parametro è quello che ti serve. Impostalo a 2.
 

Sberla

Active Member
Licensed User
Longtime User
NumberFormat2 (Number AsDouble, MinimumIntegers AsInt, MaximumFractions AsInt, MinimumFractions AsInt, GroupingUsed AsBoolean) AsString
Converts the specified number to a string.
The string will include at least Minimum Integers, at most Maximum Fractions digits and at least Minimum Fractions digits.

Con questa risolvi. Il quarto parametro è quello che ti serve. Impostalo a 2.


Sembra che funziona ti ringrazio ;)
 

saslvovc

Member
Licensed User
Longtime User
Prova con Questo:

B4X:
'Code module
'Subs in this code module will be accessible from all modules.
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub
Sub format(Amount As String) As String
   Dim Amount As String = NumberFormat2(Amount, 1, 2, 2, True)
 
  Dim Value As String

Amount = Amount.Replace(".", " ")                   ' removes the '.'
Amount = Amount.Replace(",", ".")      ' replaces ',' by '.'
Amount = Amount.Replace(" ", ",")
Value = Amount
Return "€" & "   " & Value
End Sub

Questa Procedura restituisce i valori in euro separati in migliaia e con virgola
per richiamare fai cosi:

Label1.Text= Comma.format(Label1.text)

a me funziona.
ciao
 

LucaMs

Expert
Licensed User
Longtime User
Io aggiungerei un controllo sul tipo di valuta impostato nel dispositivo.

Cioè, se chiami quella routine e la usa un americano, ti ritrovi a sostituire punti e virgole ed a sballare i valori.

Usando la libreria AHLocale puoi ottenere il simbolo della valuta corrente.

Dim Locale As AHLocale
Dim SimboloValuta As String = Locale.CurrencySymbol

Quindi se è "€" fai la sostituzione (i replace) altrimenti no
e invece di

Return"€" & "" & Value

usi

Return SimboloValuta & "" & Value
 
Top