我在將這些數據存入我的sql數據庫時遇到了一些問題。它不斷給我錯誤,說明它不能接受數據。我用了似乎失敗的小數。我必須工作的唯一類型是varchar
。但是,我需要能夠對不適用於varchar
的數據執行數學公式。無法在sql中找到數字類型來存儲這麼大的值
值是:
4.453099999999999881
ERROR: data conversion error (truncation)
我在將這些數據存入我的sql數據庫時遇到了一些問題。它不斷給我錯誤,說明它不能接受數據。我用了似乎失敗的小數。我必須工作的唯一類型是varchar
。但是,我需要能夠對不適用於varchar
的數據執行數學公式。無法在sql中找到數字類型來存儲這麼大的值
值是:
4.453099999999999881
ERROR: data conversion error (truncation)
您是否嘗試過一些FLOAT
或DOUBLE
? 嘗試DOUBLE PRECISION(52,30)
或FLOAT(53)
(https://msdn.microsoft.com/en-us/library/ms173773.aspx)
http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html http://dev.mysql.com/doc/refman/5.1/en/problems-with-float.html
float將我的數字在4個小數點處關閉,我試圖將所有值保留爲其精確值。 –
DOUBLE PRECISION(M,D)? – M0rtiis
使用mssql,所以這不是一個選項:( –
使用VARCHAR,然後再轉換程序 – Hobroker
我會perfer避免在程序如果可能的轉換價值。這樣我可以做某些sql查詢來優化我的結果。 –
你用指定的精度和比例來嘗試十進制嗎,或者只是沒有定義的默認小數?這適用於我:'SELECT CONVERT(DECIMAL(19,18),4.453099999999999881);'(您可能需要一個不同的規格,具體取決於您的最大主值,所需的小數位數等等)。此外,發生?我懷疑它是在您的應用程序中,或者在批量插入/ BCP期間,而不是在SQL Server查詢中... –