Differenze tra le versioni di "Ottenere dalla funzione Format() un valore con il punto anziché con la virgola"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Il caso è quello in cui si ha un valore in virgola mobile, e, gestendolo con la funzione ''Format()'', si intende ottenere come risultato finale anche una rappresentazione di esso con il punto anziché con la virgola.
+
Nel primo caso in esame si ha un tipo di dato numerico in virgola mobile e si intende ottenere come risultato finale anche una rappresentazione di esso con il punto anziché con la virgola.
 
+
<BR>Per fare ciò si dovrà adoperare adeguatamente le funzioni native "Format()" e "CStr()".
Per fare ciò si dovrà adoperare adeguatamente la funzione ''CStr()'' .
 
 
 
 
 
Mostriamo un esempio:
 
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
+
 
 
   Dim f As Float
 
   Dim f As Float
 
   Dim s As String
 
   Dim s As String
 
    
 
    
  f = 12345.6789
+
<FONT Color=gray>' ''Essendo il valore numerico assegnato ad un tipo di dati numerico in virgola mobile ("Float"), il simbolo separatore non può essere altro ovviamente che il punto:''</font>
 +
  f = 12345.6789
 +
 
 +
<FONT Color=gray>' ''Così si ottiene una rappresentazione testuale con la virgola del numero:''</font>
 +
  Print f
 
   
 
   
<FONT Color=gray>' ''Così si ottiene una rappresentazione grafica con la virgola del numero:''</font>
 
  Print f
 
 
   
 
   
 +
<FONT Color=gray>' ''Già così si ottiene una rappresentazione testuale del numero con il punto anziché con la virgola:''</font>
 +
  s = CStr(f)
 +
  Print s
 +
 
 +
<FONT Color=gray>' ''Quindi gestisce la stringa di quel numero mediante la funzione "Format()":''</font>
 +
  f = Val(Format$(s, "#.####"))
 +
 
 +
<FONT Color=gray>' ''Così si ottiene finalmente la rappresentazione testuale finale del numero, manipolato con la funzione "Format()", con il punto anziché con la virgola:''</font>
 +
  Print CStr(f)
 
   
 
   
  <FONT Color=gray>' ''Già così si ottiene una rappresentazione grafica del numero con il punto anziché con la virgola:''</font>
+
'''End'''
  s = CStr(f)
+
 
  Print s
+
==Caso in cui il numero in virgola mobile è una rappresentato da una Stringa e presenta come separatore la virgola==
+
In questo caso il numero in virgola mobile è rappresentato da una stringa di caratteri. Il simbolo separatore dei decimali è la virgola, e si intende ottenere alla fine, come separatore, un punto.
  <FONT Color=gray>' ''...ma noi dobbiamo manipolare la stringa di quel numero mediante la funzione "Format()":''</font>
+
<BR>Anche in questo caso si farà uso delle funzioni native "Format()" e "CStr()".
  f = Val(Format$(s, "#.##"))
+
'''Public''' Sub Main()
+
 
  <FONT Color=gray>' ''Così si ottiene ancora una rappresentazione grafica con la virgola del numero:''</font>
+
  Dim f As Float
  Print f
+
  Dim s As String = "12345,6789"
+
 
  <FONT Color=gray>' ''Così si ottiene la rappresentazione grafica finale del numero, manipolato con la funzione "Format()", con il punto anziché con la virgola:''</font>
+
  <FONT Color=gray>' ''Effettua il primo passaggio necessario:''</font>
  Print CStr(f)
+
  f = Val(s)
+
 
 +
  <FONT Color=gray>' ''Quindi manipola la stringa di quel numero mediante la funzione "Format()":''</font>
 +
  f = Val(Format$(f, "#.####"))
 +
 
 +
  <FONT Color=gray>' ''Così si ottiene ancora una rappresentazione testuale con la virgola:''</font>
 +
  Print f
 +
 
 +
  <FONT Color=gray>' ''Ora finalmente si ottiene una rappresentazione testuale con il punto:''</font>
 +
  Print CStr(f)
 +
 
 +
'''End'''
 +
 
 +
Una seconda modalità prevede più rapidamente l'uso della funzione nativa "Replace()":
 +
'''Public''' Sub Main()
 +
 
 +
  Dim s As String = "12345,6789"
 +
 
 +
<FONT Color=gray>' ''Quindi si ottiene una rappresentazione testuale con il punto:''</font>
 +
  Print Replace(s, ",", ".")
 +
 
 
  '''End'''
 
  '''End'''

Versione delle 20:49, 28 apr 2021

Nel primo caso in esame si ha un tipo di dato numerico in virgola mobile e si intende ottenere come risultato finale anche una rappresentazione di esso con il punto anziché con la virgola.
Per fare ciò si dovrà adoperare adeguatamente le funzioni native "Format()" e "CStr()".

Public Sub Main()
 
 Dim f As Float
 Dim s As String
 
' Essendo il valore numerico assegnato ad un tipo di dati numerico in virgola mobile ("Float"), il simbolo separatore non può essere altro ovviamente che il punto:
 f = 12345.6789
 
' Così si ottiene una rappresentazione testuale con la virgola del numero:
 Print f


' Già così si ottiene una rappresentazione testuale del numero con il punto anziché con la virgola:
 s = CStr(f)
 Print s
 
' Quindi gestisce la stringa di quel numero mediante la funzione "Format()":
 f = Val(Format$(s, "#.####"))
 
' Così si ottiene finalmente la rappresentazione testuale finale del numero, manipolato con la funzione "Format()", con il punto anziché con la virgola:
 Print CStr(f)

End

Caso in cui il numero in virgola mobile è una rappresentato da una Stringa e presenta come separatore la virgola

In questo caso il numero in virgola mobile è rappresentato da una stringa di caratteri. Il simbolo separatore dei decimali è la virgola, e si intende ottenere alla fine, come separatore, un punto.
Anche in questo caso si farà uso delle funzioni native "Format()" e "CStr()".

Public Sub Main()
 
 Dim f As Float
 Dim s As String = "12345,6789"
 
' Effettua il primo passaggio necessario:
 f = Val(s)
 
' Quindi manipola la stringa di quel numero mediante la funzione "Format()":
 f = Val(Format$(f, "#.####"))
 
' Così si ottiene ancora una rappresentazione testuale con la virgola:
 Print f
 
' Ora finalmente si ottiene una rappresentazione testuale con il punto:
 Print CStr(f)
  
End

Una seconda modalità prevede più rapidamente l'uso della funzione nativa "Replace()":

Public Sub Main()
 
 Dim s As String = "12345,6789"
 
' Quindi si ottiene una rappresentazione testuale con il punto:
 Print Replace(s, ",", ".")
 
End