首页 > 解决方案 > 如何用Javascript计算小数点后的数字?

问题描述

我必须在以下代码中进行哪些更改,以便小数点后的位数显示在数字下方?

var operator = ['/'];

function F1() {

  answer = document.getElementById("answer");
  digits = document.getElementById("digits after decimal point");
  rZ1 = Math.floor((Math.random() * 10));
  rZ2 = Math.floor((Math.random() * 10) + 1);
  op = operator[Math.floor(Math.random() * 1)];

  var a = parseFloat(eval(rZ1 + op + rZ2).toFixed(3));
  var d = 3

  if (a.toFixed(2) == a) {
    a = parseFloat(a.toFixed(2));
    var d = 2;
    if (a.toFixed(1) == a) {
      a = parseFloat(a.toFixed(1));
      var d = 1;
    }
  }

  answer.innerHTML = a;
  digits.innerHTML = d;
}
<button onclick="F1()"> New </button>
<p> <label id="answer"> </label> </p>
<label id="digits after decimal point"> </label>

标签: javascripthtml

解决方案


您可以找到小数点所在的位置indexOf

var operator = ['/'];

function F1() {

  answer = document.getElementById("answer");
  digits = document.getElementById("digits after decimal point");
  rZ1 = Math.floor((Math.random() * 10));
  rZ2 = Math.floor((Math.random() * 10) + 1);
  op = operator[Math.floor(Math.random() * 1)];

  var a = parseFloat(eval(rZ1 + op + rZ2).toFixed(3));
  var d = Math.max(0, (a+"").length - (a+".").indexOf(".") - 1);
  answer.textContent = a;
  digits.textContent = d;
}
<button onclick="F1()"> New </button>
<p> <label id="answer"> </label> </p>
<label id="digits after decimal point"> </label>


推荐阅读