微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我一直在搜索,但是我发现解决方案很困难,所以我来到这里问我该怎么做。 我正在做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中Intl API中的NumberFormat()函数。 (点击文档链接)。

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

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

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

const gold = 1000000;

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。