[英]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() 函数。 (单击文档链接)。
Intl.NumberFormat() 函数的第一个参数是语言环境,如果您希望它是通用的,只需传入'en-US'。 但是,如果您只想从浏览器中获取语言,也可以传入navigator.language 。
此函数的第二个参数是选项对象。 现在,在这个选项对象中,我传入了 maximumSignificantDigits 并将其设置为 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.