#javascript #calculator #scientific-notation #infinity
Вопрос:
Я продолжаю пытаться представить свой результат в научной нотации, и все еще правило бесконечности объявлено вне закона, но, похоже, я не могу заставить его работать. Когда я использую функцию toExponential (), она выдает сообщение об ошибке. Пожалуйста, могу я чем-нибудь помочь? Вот код:
<!DOCTYPE html>
<html>
<body>
Base:<input id="n1" rows=1 cols=3 type=number">
Exponent:<input id="n2" rows=1 cols=3 type="number">
<script>
var calc=0
function calculate() {
calc=document.getElementById("result").innerHTML =
BigInt(document.getElementById("n1").value)**BigInt(document.getElementById("n2").value)
calc.toExponential()=document.getElementById("result");
}
</script>
<button onclick="calculate()">Calculate</button><p>=<span id="result" style=display:none></span>
</p>
<script src="decimal.js/decimal.js"></script>
</body>
</html>
Комментарии:
1. Привет, можете ли вы предоставить сообщение об ошибке, которое вы получили ?
2. С этим новым способом написания у меня больше нет сообщения об ошибке, но по некоторым причинам BigInt больше не работает.
Ответ №1:
toExponential не существует в BigInt. Так toExponential()
как существует в Number.prototype.toExponential()
, вам нужно разобрать BingInt на float, а затем вызвать toExponential().
function calculate() {
let calc = BigInt(document.getElementById("n1").value)**BigInt(document.getElementById("n2").value);
document.getElementById("result").innerHTML = parseFloat(calc).toExponential();
console.log(parseFloat(calc).toExponential());
}
<!DOCTYPE html>
<html>
<body>
Base:<input id="n1" rows=1 cols=3 type=number">
Exponent:<input id="n2" rows=1 cols=3 type="number">
<button onclick="calculate()">Calculate</button><p>=<span id="result"></span>
</p>
</body>
</html>