爲什麼當我float.Parse一個字符串「109.7」並將結果插入到數據庫的「float」列時,我得到109.69999694824219而不是109.7?Float.parse的字符串數字導致數據庫中的另一個數字
我正在使用Microsoft SQL Server 2008和C#。數字的字符串取自文本輸入字段。
爲什麼當我float.Parse一個字符串「109.7」並將結果插入到數據庫的「float」列時,我得到109.69999694824219而不是109.7?Float.parse的字符串數字導致數據庫中的另一個數字
我正在使用Microsoft SQL Server 2008和C#。數字的字符串取自文本輸入字段。
花車沒有完全精度。您應該使用decimal.Parse來代替。
但我的數據庫列設置爲浮動數據類型。我是否需要將其更改爲小數而不是浮點數 - 我的意思是對於數據庫列? 或者像這樣:float width =(float)decimal.Parse(w) –
那麼你需要將數字從數據庫中取出或將數據庫中的類型更改爲小數時舍入數字。 –
如果您需要精度,那麼您的列具有錯誤的數據類型。 ALTER TABLE dbo.MyTable ALTER COLUMN MyColumn decimal(18,2)具有適用於您的應用程序的比例和精度 – billinkc
請參閱,例如:http://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples – shelleybutterfly