Differenze tra le versioni di "Ottenere di un numero in virgola mobile la rappresentazione del separatore con il punto anziché con la virgola"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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 del separatore con il punto anz...")
 
Riga 1: Riga 1:
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 del separatore con il punto anziché con la virgola.
+
Si intende convertire un tipo di dato numerico in un dato di tipo "Stringa" avente, come separatore dei decimali dalla parte intera, il punto anziché la virgola. <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
<BR>Per fare ciò si dovrà adoperare adeguatamente le funzioni native "Format()" e "CStr()".
+
 
  '''Public''' Sub Main()
+
===Uso della Funzione "CStr()"===
 
+
Per mostrare un numero in virgola mobile avente il punto, anziché la virgola, quale simbolo separatore della parte decimale da quella intera, si potrà usare la funzione "[[CStr/CString|CStr()]]":
  Dim f As Float
+
  Print CStr(0.123)
  Dim s As String
+
 
 
+
===Uso della Funzione "Format()" e della Proprietà ".Language" della Classe "System"===
<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>
+
Se invece si intende usare la funzione "Format()", sarà necessario impostare l'inglese-americano, come lingua corrente del programma, mediante la Proprietà ".Language" della Classe ''System'': <SUP>&#091;[[#Note|Nota 2]]&#093;</sup>
  f = 12345.6789
+
System.Language = "en_US.UTF-8"
 
+
Print Format(0.567, "#.00####")
<FONT Color=gray>' ''Così si ottiene una rappresentazione testuale con la virgola del numero:''</font>
+
Ovviamente, se si vuole cambiare lingua di sistema soltanto per la fase di utilizzo del simbolo separatore, bisognerà avere cura di reimpostare successivamente la lingua originaria del sistema:
  Print f
+
Dim lingua_originaria As String = System.Language
 
   
 
   
 +
System.Language = "en_US.UTF-8"
 +
Print Format(0.567, "#.00####")
 
   
 
   
  <FONT Color=gray>' ''Già così si ottiene una rappresentazione testuale del numero con il punto anziché con la virgola:''</font>
+
  System.Language = lingua_originaria
  s = CStr(f)
+
 
  Print s
+
===Uso delle Funzioni "Format()" e "Replace()"===
 
+
Se non si vuole utilizzare l'istruzione "System.Language", alla stringa, restituita dalla funzione "Format()", si cambierà il simbolo della virgola con quello del punto mediante la funzione "Replace()":
<FONT Color=gray>' ''Quindi gestisce la stringa di quel numero mediante la funzione "Format()":''</font>
+
stringa = Replace(Format(0.567, "#.00####"), ",", ".")
  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)
 
 
'''End'''
 
  
==Caso in cui il numero in virgola mobile è una rappresentato da una Stringa e presenta come separatore la virgola==
+
=Nota=
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.
+
[1] Vedere anche la seguente pagina: [[Mostrare un numero in virgola mobile avente il punto anziché la virgola quale separatore della parte decimale da quella intera]]
<BR>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"
 
 
 
<FONT Color=gray>' ''Effettua il primo passaggio necessario:''</font>
 
  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()":
+
[2] Vedere anche:
'''Public''' Sub Main()
+
<BR>https://gambaswiki.org/wiki/comp/gb/system/language?l=it
 
+
<BR>https://gambaswiki.org/wiki/lang/format?l=it
  Dim s As String = "12345,6789"
 
 
 
<FONT Color=gray>' ''Quindi si ottiene una rappresentazione testuale con il punto:''</font>
 
  Print Replace(s, ",", ".")
 
 
 
'''End'''
 

Versione delle 14:42, 1 apr 2023

Si intende convertire un tipo di dato numerico in un dato di tipo "Stringa" avente, come separatore dei decimali dalla parte intera, il punto anziché la virgola. [Nota 1]

Uso della Funzione "CStr()"

Per mostrare un numero in virgola mobile avente il punto, anziché la virgola, quale simbolo separatore della parte decimale da quella intera, si potrà usare la funzione "CStr()":

Print CStr(0.123)

Uso della Funzione "Format()" e della Proprietà ".Language" della Classe "System"

Se invece si intende usare la funzione "Format()", sarà necessario impostare l'inglese-americano, come lingua corrente del programma, mediante la Proprietà ".Language" della Classe System: [Nota 2]

System.Language = "en_US.UTF-8"
Print Format(0.567, "#.00####")

Ovviamente, se si vuole cambiare lingua di sistema soltanto per la fase di utilizzo del simbolo separatore, bisognerà avere cura di reimpostare successivamente la lingua originaria del sistema:

Dim lingua_originaria As String = System.Language

System.Language = "en_US.UTF-8"
Print Format(0.567, "#.00####")

System.Language = lingua_originaria

Uso delle Funzioni "Format()" e "Replace()"

Se non si vuole utilizzare l'istruzione "System.Language", alla stringa, restituita dalla funzione "Format()", si cambierà il simbolo della virgola con quello del punto mediante la funzione "Replace()":

stringa = Replace(Format(0.567, "#.00####"), ",", ".")


Nota

[1] Vedere anche la seguente pagina: Mostrare un numero in virgola mobile avente il punto anziché la virgola quale separatore della parte decimale da quella intera

[2] Vedere anche:
https://gambaswiki.org/wiki/comp/gb/system/language?l=it
https://gambaswiki.org/wiki/lang/format?l=it