Conoscere le impostazioni del separatore decimale nel sistema
Vai alla navigazione
Vai alla ricerca
Per conoscere quale sia il "separatore decimale" in uso in un sistema, è posibile adottare diverse modalità. Ne mostriamo alcune:
1a modalità
Mediante l'uso della funzione stringa Str(), la quale nell'effettuare la conversione utilizza la corrente localizzazione per convertire numeri e date. [nota 1]
Public Sub Main() Dim a as float Dim b as string a=5/2 b=str(a) Print mid(b,2,1) End
2a modalità
Con l'uso di una variabile di tipo Puntatore:
Public Sub Main() Dim a As Float Dim b As String Dim p As Pointer a = 5 / 7 b = Str(a) p = VarPtr(b) ' Dereferenziamo il Puntatore leggendo - come valore Byte - solo il 2° valore della originaria stringa. ' Quindi convertiamo quel valore di tipo Byte nel corrispettivo carattere ASCII: Print Chr(Byte@(p + 1)) End
3a modalità
Mediante un vettore di tipo Byte[ ]:
Public Sub Main() Dim a As Float Dim bb As Byte[] a = 5 / 7 bb = Byte[].FromString(Str(a)) Print Chr(bb[1]) End
4a modalità
Utilizzando un paio di specifiche funzioni esterne della libreria /usr/include/locale.h:
Library "libc:6"
Public Struct Lconv
decimal_point As Pointer
thousands_sep As Pointer
End Struct
Private Const LC_NUMERIC As Integer = 1
' char *setlocale (int __category, const char *__locale)
' Set and/or return the current locale.
Private Extern setlocale(category As Integer, locale As String) As Pointer
' struct lconv *localeconv(void)
' Return the numeric/monetary information for the current locale.
Private Extern localeconv() As Lconv
Public Sub Main()
Dim lc As New Lconv
' Specifichiamo la categoria e l'ambiente dell'impostazione locale per lingua:
setlocale(LC_NUMERIC, System.Language)
' Ritorna un Puntatore alla Struttura che dà informazioni sui simboli numerici secondo l'impostazione locale:
lc = localeconv()
With lc
Print "- Impostazioni locali numeriche -\n\nSeparatore decimale: "; String@(.decimal_point)
Print "Separatore migliaia: "; String@(.thousands_sep)
End With
End
Note
[1] Codice proposto dal membro Akrobaticone del forum gambas-it.org .