免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 13000|回复: 16
收起左侧

[求助] 关于GIS的shp文件在新建浮点型FLOAT数据时精度和小数位数问题

  [复制链接]

1

主题

546

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
38
发表于 2021-6-19 13:45 | 显示全部楼层 |阅读模式
各位高手,求助一个问题,在GIS文件入库的时候,我新建shp文件选择浮点型float字段,字段长度(精度)为16,小数位数2,但是建好之后显示都变成0了,这是怎么回事呢?
因为国土空间规划在入库时,数据库有字段的类型、长度和小数位数要求,唯独在新建浮点型字段类型时,出现这个bug,我在全网找了很多答案,说是不能在文件/个人地理数据库中操作,我直接在文件夹中新建的shp文件,然后新建MJ(面积)字段,然后就遇到了上述问题,GIS新手,还请论坛中各位大佬多多指教。


174201xaqa6h9s3qv87fl6.png

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-6-21 10:20 | 显示全部楼层
本帖最后由 城下秋木 于 2021-6-21 17:22 编辑

就是这个问题,我输了一包卫龙辣条,至今还是不懂。我说能输出两位数,但是没设置精度。淦,本来是我的卫龙啊。

先贴一下定义
The precision and scale of a field describe the maximum size and precision of data that can be stored in the field. The precision describes the number of digits that can be stored in the field and the scale describes the number of decimal places for float and double fields. For example, if the field value is 54.234, then scale = 3 and precision = 5.

按照我的理解,小数点好说,就是保留多少位。而精度是接近真值的程度。
小数点为0,精度为0,按照二进制逼近数值;
而上面的54.234,小数点3,精度5。就是保留3位,精度为正负0.00001(大概这个值,应该是吧,我猜的)(大佬们我错了,实践出真知,精度是所有位数包括整数部分,应该为精度为+-00.001)。为什么要精度设置大一点,还是计算机的二进制的值不能完全表示十进制的小数点,因此精度越大越逼近这个值,但是设置太大占用空间会太大。而精度为6是单精度和双精度的分界线,所以例子是较准的单精度。

所以,单精度精度16会出问题吧
回复 支持 1 反对 0

使用道具 举报

324

主题

56万

铜板

1172

好友

等待验证会员

Rank: 1

积分
349368

宣传勋章爱心勋章组织勋章官方团队冰雪节勋章

发表于 2021-6-21 09:51 | 显示全部楼层
欢迎论坛的高手解答,会奖励相应的威望和铜板哦
回复 支持 反对

使用道具 举报

发表于 2021-6-21 10:10 | 显示全部楼层
本帖最后由 丿Sky灬萌萌 于 2021-6-21 10:22 编辑

浮点

浮点

双精度

双精度
浮点型的精度最大阈值是精度7,精度8就是双精度了,所以你说的精度为16,小数位上为2的字段,肯定是双精度类型,要是确实是这个的话,直接建双精度类型的字段就可以了

新建字段

新建字段

回复 支持 反对

使用道具 举报

1

主题

546

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
38
 楼主| 发表于 2021-6-21 10:47 | 显示全部楼层
丿Sky灬萌萌 发表于 2021-6-21 10:10
浮点型的精度最大阈值是精度7,精度8就是双精度了,所以你说的精度为16,小数位上为2的字段,肯定是双精度 ...

为啥我的GIS 10.5新建一个精度为6,小数位数2的浮点型字段,打开字段属性还是显示0和0,难道是GIS本身的问题?
回复 支持 反对

使用道具 举报

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-6-21 10:49 | 显示全部楼层
本帖最后由 城下秋木 于 2021-6-21 10:59 编辑
YU_CHINFENG 发表于 2021-6-21 10:47
为啥我的GIS 10.5新建一个精度为6,小数位数2的浮点型字段,打开字段属性还是显示0和0,难道是GIS本身的 ...

精度6应该是没问题,大概
回复 支持 反对

使用道具 举报

发表于 2021-6-21 11:16 | 显示全部楼层
YU_CHINFENG 发表于 2021-6-21 10:47
为啥我的GIS 10.5新建一个精度为6,小数位数2的浮点型字段,打开字段属性还是显示0和0,难道是GIS本身的 ...

如果确定是精度16的话,直接添加双精度类型的字段试一下可以吗
回复 支持 反对

使用道具 举报

1

主题

546

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
38
 楼主| 发表于 2021-6-21 11:37 | 显示全部楼层
城下秋木 发表于 2021-6-21 10:49
精度6应该是没问题,大概

我在gis官网找到了这样的描述,看来浮点型字段精度确实无法超过6
Snipaste_2021-06-21_11-36-10.png
Snipaste_2021-06-21_11-36-00.png
Snipaste_2021-06-21_11-36-27.png
回复 支持 反对

使用道具 举报

1

主题

546

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
38
 楼主| 发表于 2021-6-21 11:38 | 显示全部楼层
丿Sky灬萌萌 发表于 2021-6-21 11:16
如果确定是精度16的话,直接添加双精度类型的字段试一下可以吗

双精度选择16和2完全没问题,就浮点型卡bug了
回复 支持 反对

使用道具 举报

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-6-21 11:47 | 显示全部楼层
YU_CHINFENG 发表于 2021-6-21 11:38
双精度选择16和2完全没问题,就浮点型卡bug了

数据量不大就双精度吧,反正老板又不懂。当然如果涉及数据合并等问题,建议换一个arcgis试一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表