我的代码出现错误,以前从未得到过,这确实很奇怪。 我确实尝试过parseFloat,但是那也不起作用。 代码:https://gist.github.com/markd69/aca03cab20e46e0abae7d4f1e402092d
You have triggered an unhandledRejection, you may have forgotten to catch a
Promise rejection:
TypeError: (((0.044000000000000004 * args[0]) + 0.3) + args[0]).toFixed is
not a
function
at Object.exports.run (/root/athex/athex-bot/commands/pay.js:12:54)
at Client.bot.on (/root/athex/athex-bot/index.js:316:11)
at emitOne (events.js:116:13)
at Client.emit (events.js:211:7)
at MessageCreateHandler.handler
答案 0 :(得分:1)
这与args[0]
的值为String
有关。
以args[0]
作为字符串:
(0.044000000000000004 * args[0]) + 0.3)
产生Number
。((0.044000000000000004 * args[0]) + 0.3) + args[0]
产生String
。 .toFixed
仅在Number
个对象上找到,因此导致... is not a function
错误。
将args[0]
转换为Number
并使用它可以解决此问题:
var num = Number(args[0]);
return (((0.044000000000000004 * num) + 0.3) + num).toFixed();