【问题标题】:Program not adding numbers properly程序没有正确添加数字
【发布时间】:2022-06-13 22:24:40
【问题描述】:

我在 javascript 方面并不是那么缺乏经验,但这只是让我感到困惑。我正在尝试为我的不和谐机器人制作一个经济系统,我正在使用 mongodb。现在,我正在发出存款命令,我所做的只是从用户的钱包中减去命令中给出的金额,然后将其添加到用户的银行账户中。代码:


            const balanceProfile = await client.createBalance(message.member);
            const amount = args[0];
            if(isNaN(args[0])) return message.reply(`Specify an amount to deposit.`);
            if(amount > balanceProfile.wallet) return message.reply(`Too much money to deposit.`);
            
            try {
                await Balance.findOneAndUpdate({
                    _id: balanceProfile.id, 
                    wallet: balanceProfile.wallet - amount, 
                    bank: balanceProfile.bank + amount
                });
            } catch (error) {
                console.log(error);
            }
            message.reply(`Successfully deposited ${amount} moneyz to da bank!`)
        }
    }

Mongo 架构:

const mongoose = require('mongoose');
const balanceSchema = new mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    memberId: String,
    wallet: { type: Number, default: 0 },
    bank: { type: Number, default: 0 },
    daily: { type: Number }
});

module.exports = mongoose.model('Balance', balanceSchema, 'balances');

钱包工作正常,它完美地从钱包中减去了金额。但是,我的问题是,它没有将金额添加到银行,而是将数字添加到数字的末尾。因此,如果我将 5 美元存入我的银行,而我的银行中已经有 7 美元,那么我的银行将获得 75 美元。 (我希望它为我的银行增加 5 美元,而不是我的银行的字面数字 5)。没有任何错误,我不知道要搜索什么来解决这个问题,也找不到任何关于此的先前问题。任何帮助将不胜感激。

旁注:我也尝试使用 += 语句。

【问题讨论】:

  • 变量是字符串而不是数字? "7" + 5 产生 "75""7" + "5" 也是如此。

标签: javascript mongodb math discord.js


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多