discord - 2 个数字未正确相加
问题描述
我正在将 repl.it 数据库用于我正在制作的不和谐经济机器人。我发出了一个撤销命令,但是当我输入时,!withdraw 10
我期望收到currentbalance + amount
(例如,如果当前余额为 50,我输入!with
100,我应该得到 150),但我一直收到"50100"
. 这是我的代码:
if (message.content.toLowerCase().startsWith("#ايداع")) {
const args = message.content.trim().split(/ +/g);
let money = await db.get(`wallet_${message.member}`)
let currentbalance1 = await db.get(`wallet_${message.member}`)
let currentbalance = await db.get(`bank_${message.member}`)
let gembed = new Discord.MessageEmbed()
.setColor("RED")
.setDescription("ليس لديك مبلغ كافي للايداع")
let cembed = new Discord.MessageEmbed()
.setColor("RED")
.setDescription("يرجى تحديد مبلغ للايداع");
let amount = args[1];
if (!amount || isNaN(amount))
return message.reply(cembed);
await db.set(`bank_${message.member}`, currentbalance + amount);
await db.set(`wallet_${message.member}`, currentbalance1 - amount)
let sembed = new Discord.MessageEmbed()
.setColor("RED")
.setDescription("لقد قمت بايداع" + amount + "الى حسابك البنكي");
message.channel.send(sembed);
}
解决方案
如果您的输出50100
来自50 + 100
这意味着您的数字(50
和100
)是字符串而不是数字。一个简单的解决方案是使用parseInt
.
例子:
let currentbalance1 = await db.get(`wallet_${message.member}`);
let currentbalance = await db.get(`bank_${message.member}`);
await db.set(`bank_${message.member}`, parseInt(currentbalance) + parseInt(amount));
await db.set(`wallet_${message.member}`, parseInt(currentbalance1) - parseInt(amount));
完整示例:
if (message.content.toLowerCase().startsWith("#ايداع")) {
const args = message.content.trim().split(/ +/g);
let money = await db.get(`wallet_${message.member}`)
let currentbalance1 = await db.get(`wallet_${message.member}`)
let currentbalance = await db.get(`bank_${message.member}`)
let gembed = new Discord.MessageEmbed()
.setColor("RED")
.setDescription("ليس لديك مبلغ كافي للايداع")
let cembed = new Discord.MessageEmbed()
.setColor("RED")
.setDescription("يرجى تحديد مبلغ للايداع");
let amount = args[1];
if (!amount || isNaN(amount)) return message.reply(cembed);
await db.set(`bank_${message.member}`, parseInt(currentbalance) + parseInt(amount));
await db.set(`wallet_${message.member}`, parseInt(currentbalance1) - parseInt(amount))
let sembed = new Discord.MessageEmbed()
.setColor("RED")
.setDescription("لقد قمت بايداع" + amount + "الى حسابك البنكي");
message.channel.send(sembed);
}
推荐阅读
- java - Java 8 从输入文件流式创建多个对象
- javascript - Jquery slimjet 事件委托不起作用
- c# - WPF 应用程序无法删除/保存文件
- python - 如何在 python 3.6.4 中为不和谐机器人创建商店?
- ruby-on-rails - Friendly_id 由于 before_action 阻止编辑/新页面:find_post
- c++ - C++分而治之的方阵乘法问题
- python - 用python写入csv文件,只写前几个元素然后省略号
- bash - Git Alias 创建别名
- javascript - toSource() 和 toString() 的区别
- azure - 通过 terraform 为 azure 存储设置 cors 规则