0

我在一列中有双精度类型的坐标。我想检查小数点前(小数点前)的长度(必须为 7)。数字最多可以有 4 位小数。

我的第一个想法:

CHECK (char_length(point_gauss::double precision::char)=...
4

1 回答 1

0

对于浮点,请记住这些是二进制浮点类型,因此十进制精度是一个有问题的概念。你的第一直觉应该是这样的:

 CHECK(point_gauss BETWEEN -9999.999 AND 9999.999)

但是,如果您需要特定的以 10 为底的精度,最好的方法是从 double 更改为 numeric 并改用它:

 point_gauss NUMERIC(7,3),....
于 2013-03-26T10:25:33.557 回答