0
我在列中有雙精度類型的座標。我想在小數點前(小數點前)檢查長度(它必須是7)。這些數字可以有小數多達4在postgres中添加雙精度類型的檢查約束
我最初的想法:
CHECK (char_length(point_gauss::double precision::char)=...
我在列中有雙精度類型的座標。我想在小數點前(小數點前)檢查長度(它必須是7)。這些數字可以有小數多達4在postgres中添加雙精度類型的檢查約束
我最初的想法:
CHECK (char_length(point_gauss::double precision::char)=...
對於浮點記住這些二進制浮點類型等小數精度是有點問題的概念。你的第一直覺應該是這樣的:
CHECK(point_gauss BETWEEN -9999.999 AND 9999.999)
但是,如果你需要特定的基地10精度最好的辦法是從double改變爲數字,用這個代替:
point_gauss NUMERIC(7,3),....
沒有「長「的浮點值(或變量)。 (1/3)的「長度」是多少? – wildplasser 2013-03-20 14:34:51
好的。選擇小數類型更好嗎?在我的情況下'十進制(11,4)'。 – Stefan 2013-03-20 14:40:19
這將取決於變量應該代表什麼。 – wildplasser 2013-03-20 14:42:21