19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Public sub scopri_separatore() as string Dim a as float Dim b as string a=5/2 b=str(a) return mid(b,2,1)end
si potrebbe fare così
Public sub scopri_separatore() as string 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: Return Chr(Byte@(p + 1)) End
ma il metodo complicato ha qualche vantaggio in più su quello semplice o è solo più complicato?
Citazione da: Akrobaticone - 28 Luglio 2015, 15:07:05ma il metodo complicato ha qualche vantaggio in più su quello semplice o è solo più complicato?...usa semplicemente altre risorse.
Library "libc:6"Public Struct Lconv decimal_point As Pointer thousands_sep As PointerEnd StructPrivate 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 LconvPublic 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 WithEnd
Public Sub Main() Dim a As Float Dim bb As Byte[] a = 5 / 7 bb = Byte[].FromString(Str(a)) Print Chr(bb[1])End