Convertire un numero di tipo stringa in un valore di tipo Float con la funzione g strtod() della libreria glib-2.0: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(Creata pagina con "La funzion esterna ''g_strtod( )'' della libreria ''glib-2.0'' converte un numero di tipo stringa in un valore in virgola mobile di tipo simile al ''double'' del C, che in Gam...")
 
Nessun oggetto della modifica
 
(16 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
La funzion esterna ''g_strtod( )'' della libreria ''glib-2.0'' converte un numero di tipo stringa in un valore in virgola mobile di tipo simile al ''double'' del C, che in Gambas corrisponde al tipo "''Float''".
La funzion esterna "g_strtod()" della libreria ''glib-2.0'' converte un numero di tipo stringa in un valore in virgola mobile di tipo simile al ''double'' del C, che in Gambas corrisponde al tipo FLOAT.
 
Per utilizzare in Gambas tale funzione esterna, è necessario richiamare la libreria dinamica condivisa: "''libglib-2.0.so''"


Per utilizzare in Gambas tale funzione esterna, è necessario richiamare la libreria condivisa: "''libglib-2.0.so.0.8400.4'' ".


Mostriamo un semplice esempio:
Mostriamo un semplice esempio:
  Library "libglib-2.0"
  Library "libglib-2.0:0.8400.4"
   
   
  <FONT Color=gray>' ''gdouble g_strtod (const gchar *nptr, gchar **endptr)''
  <FONT Color=gray>' ''gdouble g_strtod (const gchar *nptr, gchar **endptr)''
  ' Converts a string to a gdouble value.''</font>
  ' ''Converts a string to a gdouble value.''</font>
  Private Extern g_strtod(nptr As String, endptr As Pointer) As Float
  Private Extern g_strtod(nptr As String, endptr As Pointer) As Float
   
   
   
   
  '''Public''' Sub Main()
  Public Sub Main()
    
    
   Dim s As String
   Dim s As String
   Dim f As Float
   Dim f As Float
   
  s = "1234,56"
    
    
  f = g_strtod(s, 0)
  s = "1234,56"
 
 
  f = f + 1.23
  f = g_strtod(s, 0)
 
 
  Print f
  f = f + 1.23
 
  Print f
      
      
  '''End'''
  End




===Conversione di una stringa di caratteri numerali in un valore numerico di tipo ''Integer''===
===Conversione di una stringa di caratteri numerali in un valore numerico di tipo ''Integer''===
Se abbiamo un numero di tipo stringa che deve essere convertito in un valore numerico di tipo ''Integer'', allora dovremo convertire il risultato della funzione ''g_strtod( )'' in un Intero mediante la funzione ''CInt( )'':
Se abbiamo un numero di tipo stringa che deve essere convertito in un valore numerico di tipo ''Integer'', allora dovremo convertire il risultato della funzione "g_strtod()" in un Intero mediante la funzione "CInt()":
  Library "libglib-2.0"
  Library "libglib-2.0:0.8400.4"
   
   
  <FONT Color=gray>' ''gdouble g_strtod (const gchar *nptr, gchar **endptr)''
  <FONT Color=gray>' ''gdouble g_strtod (const gchar *nptr, gchar **endptr)''
  ' Converts a string to a gdouble value.''</font>
  ' ''Converts a string to a gdouble value.''</font>
  Private Extern g_strtod(nptr As String, endptr As Pointer) As Float
  Private Extern g_strtod(nptr As String, endptr As Pointer) As Float
   
   
   
   
  '''Public''' Sub Main()
  Public Sub Main()
    
    
   Dim s As String
   Dim s As String
   Dim f As Float
   Dim f As Float
   Dim i As Integer
   Dim i As Integer
   
  s = "1234"
    
    
  f = g_strtod(s, 0)
  s = "1234"
     
 
  i = CInt(f)
  f = g_strtod(s, 0)
   
  i = CInt(f)
 
  Print i
    
    
  Print i
  End
   
  '''End'''
 






=Riferimenti=
=Riferimenti=
* https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-strtod
* https://docs.gtk.org/glib/func.unichar_to_utf8.html?q=string

Versione attuale delle 16:33, 31 ago 2025

La funzion esterna "g_strtod()" della libreria glib-2.0 converte un numero di tipo stringa in un valore in virgola mobile di tipo simile al double del C, che in Gambas corrisponde al tipo FLOAT.

Per utilizzare in Gambas tale funzione esterna, è necessario richiamare la libreria condivisa: "libglib-2.0.so.0.8400.4 ".

Mostriamo un semplice esempio:

Library "libglib-2.0:0.8400.4"

' gdouble g_strtod (const gchar *nptr, gchar **endptr)
' Converts a string to a gdouble value.
Private Extern g_strtod(nptr As String, endptr As Pointer) As Float


Public Sub Main()
 
 Dim s As String
 Dim f As Float
  
 s = "1234,56"
 
 f = g_strtod(s, 0)
 
 f = f + 1.23
 
 Print f
   
End


Conversione di una stringa di caratteri numerali in un valore numerico di tipo Integer

Se abbiamo un numero di tipo stringa che deve essere convertito in un valore numerico di tipo Integer, allora dovremo convertire il risultato della funzione "g_strtod()" in un Intero mediante la funzione "CInt()":

Library "libglib-2.0:0.8400.4"

' gdouble g_strtod (const gchar *nptr, gchar **endptr)
' Converts a string to a gdouble value.
Private Extern g_strtod(nptr As String, endptr As Pointer) As Float


Public Sub Main()
 
 Dim s As String
 Dim f As Float
 Dim i As Integer
  
 s = "1234"
 
 f = g_strtod(s, 0)
    
 i = CInt(f)
 
 Print i
  
End


Riferimenti