MySQL 存储小数

发布于 2024-12-11 12:04:37 字数 167 浏览 0 评论 0原文

我需要存储大量小数位数字(小数点前 3 位,小数点后 6 位)。

根据我对规范的理解,这将需要 8 个字节。我可以将数字存储为 int,它只需要 4 个字节,并在检索后使用固定比例因子进行转换。

有没有更好的选择而不是使用 int,我无法轻松地对数字进行任何算术?

谢谢。

I need to store a large volume of small decimals numbers (3 digits before the decimal, 6 digits after the decimal).

From my understanding of the spec, this will require 8 bytes. I could store the number as an int which requires only 4 bytes and convert after retrieval using a fixed scale factor.

Is there a better alternative instead of using an int, I can't easily do any arithmetic on the numbers?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

内心荒芜 2024-12-18 12:04:37

我认为这是不正确的。
DECIMAL(9,6) 应该可以完成这项工作。
根据mysql 5.1手册,3位数字需要2个字节,6位数字需要3个字节。恕我直言,总共是 5 个字节而不是 8 个字节。
因此,与您建议的整数“黑客”相比,您不需要更多的内存。在你的情况下我肯定会选择十进制。

I do not think this is correct.
DECIMAL(9,6) should do the job.
It will require 2 bytes for the 3 digits and 3 bytes for the 6 digits according to mysql 5.1 manual. IMHO that´s 5 bytes not 8 bytes in total.
You will therefore not require a lot more memory than with the integer "hacking" you proposed. I would definitely go with decimal in your case.

盛夏尉蓝 2024-12-18 12:04:37

不,如果您使用 MySQL 的“int”数据类型,它将不起作用。这是因为整数无法处理小数精度。

根据您的问题,您应该使用“定点数据类型”,这将有利于您进行大型计算和计算。货币数据。在 MySQL 中,所需的数据类型是“DECIMAL”,您可以阅读更多相关信息 此处

在您的情况下,正确的语法是“DECIMAL (9, 6)”,其中 9 表示总共最多可以存储 9 位数字,其中小数点后有 6 位数字,小数点前 3 位。

希望有帮助。

No, it won't work if you are using "int" data type of MySQL. This is because integers can't handle decimal precision.

According to your question, you should be using "Fixed Point Data Types", which will benefit you in large calculations & monetary data. In MySQL, the required data type is "DECIMAL" and you can read more on it here.

The proper syntax in you case will be "DECIMAL (9, 6)", where 9 means that values can be stored with up to 9 digits in total, of which 6 digits are after the decimal point and 3 digits are before the decimal point.

Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文