繁体   English   中英

如何在这些代码行中添加千位分隔符?

[英]How can I add a thousands separator in those lines of code?

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

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 中可用的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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM