我正在尝试从以下函数获取 8 位十进制输出。
以下函数将输入乘以 2,然后使用 berUpdate 变量更新此输入。我希望这个输出的数字有 8 位小数。
例如:如果输入数字是 0.00000001(此代码用于比特币网站),那么我希望输出数字为 0.00000002。由于某种原因,下面的代码无法正常工作,因为输出数字的格式为 2e-8,没有 .toFixed(8) 代码。如果可以的话请帮忙。非常感谢。
<script>
function MultiplyWagerFunction() {
var wager = document.getElementById("wagerInputBox").value;
var wagerUpdate = wager*2;
document.getElementById("wagerInputBox").value = +wagerUpdate.toFixed(8);
}
</script>
最佳答案
如果您在 wagerUpdate.toFixed(8)
之前删除 +
,它应该可以正常工作。当您将 wagerUpdate
乘以 2
时,它已经转换为数字,因此不需要一元 +
var a = "0.00000001";
var b = a*2;
console.log(b.toFixed(8));
console.log(+b.toFixed(8));
^ 看看差异。
它不起作用的原因是因为你正在做的事情相当于:
+(b.toFixed(8))
因为precedence of the operators (成员访问.
高于一元+
)。您正在使用 .toFixed
将 b
转换为字符串,然后使用 +
将其转换回数字,然后将其转换回又是一个字符串!(这次使用默认的 toString
行为来表示数字,为您提供指数表示法)
关于javascript - 如何得到8位小数的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769120/