sql - Mariadb 中的双倍
问题描述
我创建了一个专栏
day_endnav double precision
当我在数据库中插入一个数字: 58.320856084100 时,它存储为 58.3208560841 。末尾的 2 个零被删除。
有什么办法可以让 mariadb 保持输入的内容不变。最后不要四舍五入或删除零?
解决方案
这两个零没有被“删除”。 DOUBLE
有 53 个有效位,大约是 16 个有效十进制数字。数字的显示可能决定它们无关紧要。什么工具显示它们?
无论您插入58.320856084100
还是58.32085608410000000000000
,您都将获得相同的值存储到DOUBLE
.
尾随零(至少在小数点后)对or没有数学意义。如果您有某些含义,那么我想您需要将其存储为字符串,或者.FLOAT
DOUBLE
DECIMAL
DECIMAL(mm, 12)
将存储并显示58.320856084100
(如果 mm >= 14)。但是,DECIMAL
是“定点”。也就是说,DECIMAL(20,12)
将始终精确到小数点后 12 位,不多也不少。
请说明你的目标;也许我还没有谈到这一点。
推荐阅读
- google-chrome - Is it possible to implement a custom request copy browser extension
- javascript - How to get the objects from a request url module function to another function
- rust - 用 Rust 创建周期性任务的最佳方法是什么?
- ansible - ECS 集群的 Ansible 服务发现
- react-native - @react-native-community/NetInfo: Error when I tried to remove event listener
- python - “Dash plotly”:我在将两个输入连接到输出时遇到问题,而且 bas x 轴也没有排序和正确分类
- ruby - 使用 rspec 测试 ruby 脚本很热门
- firebase - 检索数据时出现异常:- 未布置 RenderBox
- google-apps-script - 为什么“category:social”在 GMail UI 搜索中使用,但在 GmailApp.search("category:social", 0, 500) 中不起作用
- python - 用不稳定的时间序列模型拟合时间序列