Научная нотация с отключенным правилом бесконечности

#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>