首页 > 解决方案 > 如何停止在 MySQL 中舍入 int 值

问题描述

我是一个不和谐的机器人开发者。我正在尝试将 MySQL 用于我的不和谐机器人。我正在尝试将公会 ID 保存在我的表中。当我发布到表格时,公会 ID 会自动四舍五入。例如,我的公会 id 是837465019283745861。它像837465019283745900一样发布。我正在使用mysql模块。

我的表:

CREATE TABLE guilds (
id INT PRIMARY KEY AUTO_INCREMENT,
guild_id BIGINT(18) NOT NULL);

我的邮政编码:

const guild = 837465019283745861;
connection.query('INSERT INTO guilds (guild_id) VALUES (?)', guild, function(error, results, fields) {
    if (error) throw error;
    console.log('Data sent!');
});

标签: javascriptmysqlnode.jsdiscord.js

解决方案


这些值不会在 MySQL 中四舍五入。那是 JavaScript 搞砸了你,因为你没有使用BigInt

const guild = 837465019283745861n;

除非另有说明,否则 JavaScript 中的所有数字实际上都是浮点数。这导致对较大数字进行四舍五入。


推荐阅读