关于增加高精度小数数据类型的需求
这个需求提了不知道多少次了使用FLOAT浮点数作为小数类型存在精度问题
虽然我们可以通过设置有效精度来避免这个问题,但这个问题是本质存在的,就不知道活字格为什么不能解决,加一个高精度数据类型为啥就那么难呢
请问您说的是这个历史问题吗?
小数字段使用FLOAT类型会造成精度问题
https://gcdn.grapecity.com.cn/showtopic-152151-1-1.html
(出处: 葡萄城开发者社区)
不是很理解您说的高精度是到什么程度啊。我分享下我们的信息,因为计算机本质存储的是二进制,二进制下,很多十进制可以正常显示的小数,会成为无限循环数,这样,计算机不可能完全正确的存储,所以也不能在任何范围下不丢失任何精度。打个比方,0.4,转换为2进制是这样的0.0110 (0110无限循环),这种情况下,您要求的无限高精度是无法实现的。
Patrick.Zhu 发表于 2023-12-28 17:19
请问您说的是这个历史问题吗?
小数字段使用FLOAT类型会造成精度问题
https://gcdn.grapecity.com.cn/sho ...
就这个decimal类型就满足了,完美解决精度问题
本帖最后由 guoqp 于 2023-12-28 17:55 编辑
浮点类型在所有语言中都存在精度问题,稍不注意就会留下后患
当然我们自己也不是不能解决这个问题,打开SQL设计器,手动修改数据类型就行了,我说的是为啥咱们活字格就不能加个这个数据类型呢
我确认以下,您说的活字格加,是指在数据表字段中,可以直接添加吗?也就是这个位置,对吗:
是的啊,现在只有小数型,这就是float类型 大佬能给个demo吗?我们测试下,有可能牵扯到js和c#的精度不同问题,加了高精度类型,我们可能也解决不了 Patrick.Zhu 发表于 2023-12-29 12:19
大佬能给个demo吗?我们测试下,有可能牵扯到js和c#的精度不同问题,加了高精度类型,我们可能也解决不了
这是老问题了
https://gcdn.grapecity.com.cn/showtopic-152151-1-1.html
而且这也是个常识问题,搞开发都懂,浮点数据都存在精度问题,任何语言都一样,其实这个字段增加一个decimal类型就行了啊,这也是我们以往的通用解决办法
或者这个小数类型增加一个精度位数选择也行 大佬,我看了您的原问题,您也提到了偶尔会计算错误,感觉更像一个bug。
您提供一下复现的方法和demo吗,我们研究下看看怎么修复。
Patrick.Zhu 发表于 2024-1-2 17:20
大佬,我看了您的原问题,您也提到了偶尔会计算错误,感觉更像一个bug。
您提供一下复现的方法和demo吗, ...
不想跟你说了,浮点类型计算存在精度问题,这是行业共识好吧,我不信你们作开发的还不知道这个,我还是继续手工改类型吧,不讨论这个问题了
页:
[1]
2