如何解决如何在这些代码行中添加千位分隔符?
我一直在搜索,但是我发现解决方案很困难,所以我来到这里问我该怎么做。 我正在做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()函数。 (点击文档链接)。
-
Intl.NumberFormat()函数的第一个参数是语言环境,如果要使其通用,只需传入“ en-US”即可。但是,如果您只想从浏览器中获取语言,也可以传递 navigator.language 。
-
此功能的第二个参数是一个选项对象。现在,在该选项对象中,我传入了maximumSignificantDigits并将其设置为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 举报,一经查实,本站将立刻删除。