javascript - 如何在javascript中将随机价格变成随机的最小应付现金金额
问题描述
我想要一个 javascript 的数学算法
- 输入:随机从 0.00 到 200.00
- 输出:纸币中的 3 个随机最小数字(0.01,0.02,0.05,1,5,10,20,50,100,200)
- (比如在商店付款)
示例输入->输出:
- 0.15->0.2 或 0.5 或 1
- 4-> 4 或 5 或 10
- 9-> 10 或 15 或 20
- 174 -> 175 或 180 或 200
解决方案
第一步,您可以Math.random()
使用 200 倍数(此链接将解释更多)。
然后你可以找到哪些钞票大于或等于随机数量(Array.prototype.filter())。
然后您可以Math.random()
再次使用随机抽取 3 张有效纸币(链接)。
这是执行上述步骤的代码:
const banknotes = [0.01, 0.02, 0.05, 1, 5, 10, 20, 50, 100, 200]
const handleClick = () => {
const amountNeeded = Math.random() * 200
const validBanknotes = banknotes.filter(value => value >= amountNeeded)
const randomBanknotes = []
for (let i = 0; i < 3; i++) {
randomBanknotes.push(validBanknotes[Math.floor(
Math.random() * validBanknotes.length)])
}
console.log(`Amount needed: ${amountNeeded}. Random banknotes: ${randomBanknotes}`)
}
<button onclick='handleClick()'>Click to generate random results</button>
推荐阅读
- javascript - 我如何在节点 js 服务器中包含 css js
- javascript - Waypoints 计数器向上计数(然后向下计数)并且当 div 处于即时视图中时不执行脚本
- c++ - 在 C++ 中更改静态 const int 的值
- sql - 如何将表中的特定值添加到新列?
- hash - kafka 允许向主题添加分区但不能删除?
- vba - 从 Microsoft Outlook 在 Microsoft Access 中运行附加查询时缺少字段
- angular - 使用打字稿和角度在警报框上填写表格
- powershell - 如果帐户到期日期少于 30 天,请向其经理发送邮件
- c# - 通过外键获取实体值
- python - pipenv 创建虚拟环境出现错误