如何获得8位十进制输出?

时间:2017-05-03 20:10:29

标签: javascript

我试图从以下函数获得8位十进制输出。

以下函数将输入乘以2,然后使用wagerUpdate变量更新此输入。我希望这个输出的数字有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>

3 个答案:

答案 0 :(得分:1)

如果您在+之前移除wagerUpdate.toFixed(8),它应该可以正常工作。当wagerUpdate乘以2时,+已被转换为数字,因此不需要一元var a = "0.00000001"; var b = a*2; console.log(b.toFixed(8)); console.log(+b.toFixed(8));

&#13;
&#13;
+(b.toFixed(8))
&#13;
&#13;
&#13;

^看到差异。

它不起作用的原因是因为你所做的相当于:

.

因为precedence of the operators(成员访问+高于一元b)。您正在将.toFixed转换为包含+的字符串,然后将其转换回toString的数字,然后再将转换回字符串!(此使用指数表示法的数字的默认msg行为的时间)

答案 1 :(得分:0)

只需从+wagerUpdate.toFixed(8);中删除+就可以了。

答案 2 :(得分:-3)

而不是:

document.getElementById("wagerInputBox").value = +wagerUpdate.toFixed(8);

尝试:

document.getElementById("wagerInputBox").innerHTML = +wagerUpdate.toFixed(8);

为什么我这样说可能是在您设置值时,浏览器会尝试转换为最佳结果。但是,内部HTML应该采用等效的字符串!