2010-07-01 142 views

回答

9

如果你正在處理貨幣,那麼我至少會使用double,如果不是decimal。這就是說,你想:

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

如果你不知道它是否會是一個數字或不:

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

它始終是一個數字,因爲它是一個數字貨幣字段; – user279521 2010-07-01 13:33:42

+2

@ user279521 - 如果您可以100%保證隨後使用「Parse」而不是「TryParse」。 – ChrisF 2010-07-01 13:36:02

4

你的意思是C#float類型?

float f = float.Parse(text); 

或者......

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

注意,上面的代碼將使用當前文化。您可能想要指定不同的文化,例如

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

編輯:如果這其實是一個浮動列在數據庫中,你可以使用double代替。

請注意,貨幣信息通常應該使用float/double存儲在而不是;它應該使用十進制類型來存儲,例如, decimal(C#)和NUMBER(SQL)。

+0

好吧,這是我在asp方面的測試txtPurchItemCorrectPrice.Text.Trim();並且db參數需要一個float數據類型。 – user279521 2010-07-01 13:30:49

+0

@ user279521:那麼這是數據庫中的「浮動」?如果是這樣,你可能想在C#端「double2」 – 2010-07-01 13:31:56

+0

希望我可以將數據庫數據類型更改爲數字...將採取國會行動感謝您的信息 – user279521 2010-07-01 13:35:22

0
float.TryParse(…) 

這可以避免引發無效輸入異常。

0

昏暗的X爲雙= Convert.ToDouble(txtPurchItemCorrectPrice.Text.Trim() )

相關問題