首页 > 解决方案 > Mariadb 中的双倍

问题描述

我创建了一个专栏

day_endnav double precision

当我在数据库中插入一个数字: 58.320856084100 时,它存储为 58.3208560841 。末尾的 2 个零被删除。

有什么办法可以让 mariadb 保持输入的内容不变。最后不要四舍五入或删除零?

标签: sqlmariadb

解决方案


这两个零没有被“删除”。 DOUBLE有 53 个有效,大约是 16 个有效十进制数字。数字的显示可能决定它们无关紧要。什么工具显示它们?

无论您插入58.320856084100还是58.32085608410000000000000,您都将获得相同的值存储到DOUBLE.

尾随零(至少在小数点后)对or没有数学意义。如果有某些含义,那么我想您需要将其存储为字符串,或者.FLOATDOUBLEDECIMAL

DECIMAL(mm, 12)将存储显示58.320856084100(如果 mm >= 14)。但是,DECIMAL是“定点”。也就是说,DECIMAL(20,12)将始终精确到小数点后 12 位,不多也不少。

请说明你的目标;也许我还没有谈到这一点。


推荐阅读