2017-07-12 48 views
0

我有一個好奇的問題,我的小數值進入MySQL數據庫。如何將十進制插入到mysql數據庫中?

我有一個表,與amount列標記爲decimal

列聲明看起來是這樣的:

`amount` DECIMAL NOT NULL, 

在我的代碼,我試圖用插入一行到該數據庫以下

decimal amount=0.9902888269673553777395003M; 

command.CommandText="insert into `mytable` (..., `amount`, ....) values (....,@amount,...)"; 
command.Parameters.AddWithValue("@amount", amount); 

執行完命令後,該行被插入到數據庫中,但數量總是爲0,沒有墊子我做了什麼。

我在做什麼錯?

+0

不知道這是否是問題,但也有在那裏['AddWithValue'挑選了錯誤的類型案件](https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) – juharr

+0

檢查了,沒有;無論如何,拉胡爾有正確的答案,我沒有定義多少小數後面逗號使用,所以mysql默認爲0 –

+0

你似乎沒有遵循正確的十進制類型字段的定義。 https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html – money

回答

3

恩,你忘了用DECIMAL(M,D)的形式定義小數點的大小。所以,你的列定義應該是下面這意味着共有30位長的數字小數點後這將有最多15個數字

`amount` DECIMAL(30,15) NOT NULL, 
相關問題