sheyt 发表于 2022-3-30 23:19:41

整数字段存在非常大的问题,无法保证精确性

本帖最后由 sheyt 于 2022-3-30 23:24 编辑

请看如下视频,我将一个整数:1002107271780013输入整数字段,会自动变为1002107271780010,输入1002107271780015,会自动变为1002107271780020,就是系统自带的ID字段也有这个问题,这几乎是致命的问题,作为一个bigint类型的数据类型,怎么会出现这样的异常啊?我们外链数据库的ID是1002107271780013,今天查了一天的原因,发现原来活字格解析回来的数据是1002107271780010,导致系统逻辑、数据严重错乱了


小白学员 发表于 2022-3-31 10:12:56

本帖最后由 小白学员 于 2022-3-31 10:14 编辑

改成nvchar吧。这个不属BUG的吧。

Lay.Li 发表于 2022-3-31 10:19:21

感谢各位大佬的支持~
这边儿测试了一下,内建数据库中的整数长度确实只有15位。这边已经反馈给了开发同事,看看他们有什么解决方案,有结果了及时给您反馈哈:loveliness:

sheyt 发表于 2022-3-31 23:06:00

知道原因了,原来是受制于前端Javascript的数据精度。

关于Javascript超大整数和浮点数的精度解说及闭坑方法,可以参考此文,希望大家不用再继续踩坑!

https://gcdn.grapecity.com.cn/showtopic-143942-1-1.html

Lay.Li 发表于 2022-4-1 10:52:01

感谢大佬的反馈~:hjyzw:

高阳酒徒 发表于 2022-4-2 10:41:59

小白学员 发表于 2022-3-31 10:12
改成nvchar吧。这个不属BUG的吧。

改成nvchar确实可以解决,但是注意外联库,本来我们引用第三方的表很简单,但是有些第三方表的id比较长,但是本来可以直接引用的表都要创建视图,1是花费的时间多,2是做数据表修改的时候只能用sql不能用数据表操作,你真正遇到了就会发现很麻烦

Lay.Li 发表于 2022-4-2 12:02:46

是的,但这个确实是前端的限制,我们也不好去处理哈:'(

小白学员 发表于 2022-4-2 12:48:13

高阳酒徒 发表于 2022-4-2 10:41
改成nvchar确实可以解决,但是注意外联库,本来我们引用第三方的表很简单,但是有些第三方表的id比较长, ...

晕死,我还以为表是你自己控制的呢。第三方的话是有点麻烦。

Lay.Li 发表于 2022-4-2 14:40:11

感谢各位大佬的支持~:hjyzw:
页: [1]
查看完整版本: 整数字段存在非常大的问题,无法保证精确性