2010-07-01 22 views

risposta

9

Se si ha a che fare con la valuta, allora utilizzerei lo double come minimo, se non lo è decimal. Detto questo si vuole:

double value = double.Parse(txtPurchItemCorrectPrice.Text.Trim()); 

Se non siete sicuri se sarà un numero o no:

double value; 
bool isOK = double.TryParse(txtPurchItemCorrectPrice.Text.Trim(), out value); 
+0

Sarà sempre un numero, poiché è un campo valuta; – user279521

+2

@ user279521 - se è possibile garantire al 100% che quindi andare con 'Parse' piuttosto che' TryParse'. – ChrisF

4

Intendi il tipo C# float?

float f = float.Parse(text); 

Oppure ...

float value; 
if (float.TryParse(text, out value)) 
{ 
    // Yay! 
} 
else 
{ 
    // Boo! Parse failed... 
} 

Si noti che il codice di cui sopra utilizzerà la cultura corrente. Potresti voler specificare una cultura diversa, ad es.

... 
if (float.TryParse(text, out value, NumberStyles.Float, 
        CultureInfo.InvariantCulture)) 
... 

EDIT: Se questo è in realtà una colonna galleggiante in un database, si può desidera utilizzare double invece.

Nota che le informazioni sulla valuta dovrebbero di solito non essere memorizzate nell'uso di float/double; deve essere memorizzato utilizzando il tipo decimale, ad es. decimal (C#) e NUMBER (SQL).

+0

beh, questo è il mio test nel lato asp txtPurchItemCorrectPrice.Text.Trim(); e il parametro db si aspetta un tipo di dati float. – user279521

+0

@ user279521: Quindi questo è "float" nel database? Se è così, potresti volere "double2 sul lato C# –

+0

Vorrei poter cambiare il tipo di dati DB in numero ... farebbe un atto di congresso Grazie per le informazioni – user279521

0
float.TryParse(…) 

Ciò evita di generare un'eccezione su input non validi.

0

Dim x As Double = Convert.ToDouble (txtPurchItemCorrectPrice.Text.Trim())

Problemi correlati