Formattazione del separatore decimale

lunedì 15 ottobre 2007 - 19.29

LLL Profilo | Newbie

Ciao a tutti,
ricorro ancora una volta al vostro aiuto per un problema apparentemente semplice ma che mi sta facendo impazzire:

ho bisogno di visualizzare in un textbox un numero (risultato di un calcolo) SEMPRE CON IL PUNTO, independentemente dalle impostazioni internazionali usate dal pc.
Ho provato con l'istruzione format

Textbox1.text = Format (numero, "0.00")
dove numero è la mia varabile che contiene il risultato del conto.

ma non funziona, perché interpreta il punto che ho messo nel formato come punto o come virgola a seconda del separatore decimale usato dal pc!

Sapete dirmi come posso fare?
Vi ringrazio infinitamente,
LLL

SSUPERPIPPO Profilo | Guru

All'evento textchange o validate (vedi tu) della textbox sostituisci l'eventuale virgola con il punto utilizzando stringbuilder

\\ Impostare il namespaces System.Text

Imports System.Text

\\ Aggiungere all'evento il seguente codice

Dim ModificableString As New StringBuilder

ModificableString.Append(TuaTextBox.Text)
ModificableString.Replace(",", ".") <== Sostituisce le virgole con il punto
TuaTextBox.Text=ModificableString.ToString

Per maggiori delucidazioni sull'utilizzo di StringBuilder puoi dare un'occhiata all'articolo sul mio blog (link qui sotto)

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

Teech Profilo | Expert

Puoi utilizzare la classe System.Globalizzation.Culture
Ci sono svariati esempi sul Web...

Ciao!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

LLL Profilo | Newbie

Ciao a tutti,
innanzitutto grazeie mille per l'aiuto.
Ho provato la prima soluzione e funziona tutto, l'unica seccatura è che in realtà il programma è fatto da tante caselle e dati e dovrei richiamare la stessa procedura ogni volta, ma il vantaggio è che poi non devo vincolare all'uso della virgola e del punto neanche nell'immisione dei dati.
La seconda soluzione se non ho capito male, consiste nel far cambaire al mio programma le impostazioni internazionali del pc su cui gira: se è così è sicuramente piu' veloce, ma poi funziona anche se l'utente non ha privilegi di amministratore?

Ciao e di nuovo grazie,
LLL

Teech Profilo | Expert

Non si tratta di cambiare le impostazioni internazionali del PC ma di come la tua procedura riconosce la cultura utilizzata dal PC e come puoi gestirla nella tua applicazione specifica.

Ciao!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

LLL Profilo | Newbie

incredibile...
alla fine mi è bastato aggiungere una sola istruzione nell'evento load del primo form che si apre nel mio progetto:

System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")

sembra che funzioni!!

Grazie a tutti!

Teech Profilo | Expert

>incredibile...
>alla fine mi è bastato aggiungere una sola istruzione nell'evento load del primo form che si apre nel mio progetto:
>
>System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
>
>sembra che funzioni!!

Se il tuo numero deve sempre essere visualizzato come "cultura" inglese non dovresti assolutamente aver problemi.

>Grazie a tutti!
Di nulla.
Se ti sono state utili le informazioni segna la discussione come risolta... Grazie!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5