2012-05-16 120 views
-1

我想解析一個字符串來浮動並將其添加到SqlParameter。 當我輸入1234567890時,它在數據庫中保存爲1234567936. 另外,我看到它在調試中轉換爲1.234568E + 9。由於數據庫接受浮動,我不能將其轉換成雙。解析字符串來浮動

com.Parameters.Add(new SqlParameter("Awb", SqlDbType.Float)).Value = float.Parse(txtAwb.Text); 

解決方案:看起來我必須在數據庫中使用另一種數據類型。浮點值不能包含具有許多數字的數字。 我正在處理一箇舊的數據庫,所以我會考慮別的。

+0

請編輯並詢問一個明確的問題。這不是很明顯,你想要什麼幫助。 – Almo

+0

那麼問題是什麼? –

+3

爲什麼不float.Parse? – nawfal

回答

4

浮點值具有有限的精度C#的東西......這是顯著數字一個數量有限。

如果您需要準確存儲較大的值,則需要在數據庫中使用不同的字段類型。貨幣爲貨幣或可能是大的非小數值的整數。

基本上浮動不能容納這麼大的數字到你想要的精度。

0

here是所有關於浮動

float.Parse(value)應該做你想要什麼

+0

我粘貼了錯誤的代碼,請參閱已編輯的帖子。謝謝。 – Bora

+0

應該仍然有效。正如它在鏈接中所說的那樣,浮點數的精度有限,只有7位數。這可能會導致您的問題 – Alex

0

不幸的是,當您使用float時,您無法獲得超過7位有價值的數字。 請考慮使用其他數據類型。