【问题标题】:How can I add a thousands separator in those lines of code?如何在这些代码行中添加千位分隔符?
【发布时间】:2021-02-20 03:00:09
【问题描述】:

我一直在谷歌上搜索,但我发现解决方案很困难,所以我来这里问我该怎么做。 我正在做一个incremental game,我想从基础开始:开采黄金和购买。现在我正在着手开发这款游戏的下一步,我真的需要帮助

HTML

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
    <meta charset="utf-8">
    <title>Gold Miner</title>
</head>
<body>
    <h2 id="goldMined">0 Gold Mined</h2>
    <br />
    <br />
    <button onclick="buyGoldPerClick()" id="perClickUpgrade">Get More Money. Cost: 10 Gold</button>
    <br />
    <br />
    <button onclick="Reset()">Reset Game</button>
    <script src="main.js" charset="utf-8" type="text/javascript"></script>
</body>
</html>

JavaScript

var gameData = {
    gold: 0,
    goldPerClick: 0.01,
    goldPerClickCost: 10,
    tickReduction: 1000,
    tickReductionCost: 100
}

function mineGold() {
    gameData.gold += gameData.goldPerClick
    document.getElementById("goldMined").innerHTML = gameData.gold.toFixed(0).toLocaleString('en') + " Gold Mined"
    document.getElementById("perClickUpgrade").innerHTML = "Buy Pickaxe. Cost: " + gameData.goldPerClickCost.toFixed(0).toLocaleString('en') + " Gold"
}

function buyGoldPerClick() {
    if (gameData.gold >= gameData.goldPerClickCost) {
        gameData.gold -= gameData.goldPerClickCost
        gameData.goldPerClick *= 2
        gameData.goldPerClickCost *= 3
        document.getElementById("goldMined").innerHTML = gameData.gold.toLocaleString('en') + " Gold Mined"
        document.getElementById("perClickUpgrade").innerHTML = "Buy Pickaxe. Cost: " + gameData.goldPerClickCost.toLocaleString('en') + " Gold"
    }
}

function Reset() {
    gameData.gold = 0
    gameData.goldPerClick = 0.01
    gameData.goldPerClickCost = 10
}

var mainGameLoop = window.setInterval(function () {
    mineGold()
}, 10)

var saveGameLoop = window.setInterval(function () {
    localStorage.setItem("goldMinerSave", JSON.stringify(gameData))
}, 1)

var savegame = JSON.parse(localStorage.getItem("goldMinerSave"))
if (savegame !== null) {
    gameData = savegame
}

任何帮助都对我有很大帮助,因为我是 JavaScript 和 HTML 编程初学者!感谢您阅读我的帖子!

【问题讨论】:

  • 您的问题是什么?你不问一个
  • 如何在这些数字中添加千位分隔符?
  • 几号?请尝试具体化并缩小问题范围。
  • 我正在尝试获取黄金数量和价格数量中的千位分隔符。

标签: javascript html math separator


【解决方案1】:

您可以使用 Javascript 中的 Intl API 中的 NumberFormat() 函数。 (点击文档链接)。

  1. Intl.NumberFormat() 函数的第一个参数是语言环境,如果您希望它是通用的,只需传入“en-US”即可。但是,如果您只想从浏览器中获取语言,也可以传入 navigator.language

  2. 这个函数的第二个参数是一个选项对象。现在,在这个选项对象中,我传入了 maximumSignificantDigits 并将其设置为 3。您可以根据自己的要求进行更改。您还可以传递其他选项,只需查看我在上面提供的链接即可。

  3. 最后,您将调用 format() 函数并将您的黄金作为参数传递,这将总体上返回具有 3 个最大有效数字的格式化值。

const gold = 1000000;

const formattedGold = Intl.NumberFormat('en-US', { maximumSignificantDigits: 3 }).format(gold);

//Printing output to console
console.log(formattedGold);

【讨论】:

    猜你喜欢
    • 2016-04-06
    • 2021-11-17
    • 2015-07-12
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多