如何从 Javascript 中的十进制数中删除零
How to remove zeros from decimal numbers in Javascript
如果计算例如是 10/8
代码应该回答 1.25
而不是 1.250
或者 0/1
应该是 0
而不是 0.000
.如何从 Javascript 中的十进制数字中删除零,同时仍保留点三 (.toFixed(3);
)
之后的最大位数(如果没有零)
var operator = ['/'];
function F1() {
Z1 = document.getElementById("Z1");
Z2 = document.getElementById("Z2");
oper=document.getElementById("operator");
answer=document.getElementById("answer");
rZ1 = Math.floor((Math.random()*10));
rZ2 = Math.floor((Math.random()*10)+1);
op = operator[Math.floor(Math.random()*1)];
Z1.innerHTML=rZ1; Z2.innerHTML=rZ2;
oper.innerHTML=op;
answer.innerHTML = eval(rZ1 + op + rZ2).toFixed(3);}
<button onclick="F1()"> New </button>
<p> <label id="Z1"> </label>
<label id="operator"> </label>
<label id="Z2"> </label>
= <label id="answer"> </label> </p>
我确定有更优雅的解决方案,但这个可行:
var operator = ['/'];
function F1() {
Z1 = document.getElementById("Z1");
Z2 = document.getElementById("Z2");
oper=document.getElementById("operator");
answer=document.getElementById("answer");
rZ1 = Math.floor((Math.random()*10));
rZ2 = Math.floor((Math.random()*10)+1);
op = operator[Math.floor(Math.random()*1)];
Z1.innerHTML=rZ1; Z2.innerHTML=rZ2;
oper.innerHTML=op;
var blah = parseFloat(eval(rZ1 + op + rZ2).toFixed(3));
if (blah.toFixed(2) == blah) {
blah = parseFloat(blah.toFixed(2));
if (blah.toFixed(1) == blah) {
blah = parseFloat(blah.toFixed(1));
}
}
answer.innerHTML = blah;}
<button onclick="F1()"> New </button>
<p> <label id="Z1"> </label>
<label id="operator"> </label>
<label id="Z2"> </label>
= <label id="answer"> </label> </p>
如果计算例如是 10/8
代码应该回答 1.25
而不是 1.250
或者 0/1
应该是 0
而不是 0.000
.如何从 Javascript 中的十进制数字中删除零,同时仍保留点三 (.toFixed(3);
)
var operator = ['/'];
function F1() {
Z1 = document.getElementById("Z1");
Z2 = document.getElementById("Z2");
oper=document.getElementById("operator");
answer=document.getElementById("answer");
rZ1 = Math.floor((Math.random()*10));
rZ2 = Math.floor((Math.random()*10)+1);
op = operator[Math.floor(Math.random()*1)];
Z1.innerHTML=rZ1; Z2.innerHTML=rZ2;
oper.innerHTML=op;
answer.innerHTML = eval(rZ1 + op + rZ2).toFixed(3);}
<button onclick="F1()"> New </button>
<p> <label id="Z1"> </label>
<label id="operator"> </label>
<label id="Z2"> </label>
= <label id="answer"> </label> </p>
我确定有更优雅的解决方案,但这个可行:
var operator = ['/'];
function F1() {
Z1 = document.getElementById("Z1");
Z2 = document.getElementById("Z2");
oper=document.getElementById("operator");
answer=document.getElementById("answer");
rZ1 = Math.floor((Math.random()*10));
rZ2 = Math.floor((Math.random()*10)+1);
op = operator[Math.floor(Math.random()*1)];
Z1.innerHTML=rZ1; Z2.innerHTML=rZ2;
oper.innerHTML=op;
var blah = parseFloat(eval(rZ1 + op + rZ2).toFixed(3));
if (blah.toFixed(2) == blah) {
blah = parseFloat(blah.toFixed(2));
if (blah.toFixed(1) == blah) {
blah = parseFloat(blah.toFixed(1));
}
}
answer.innerHTML = blah;}
<button onclick="F1()"> New </button>
<p> <label id="Z1"> </label>
<label id="operator"> </label>
<label id="Z2"> </label>
= <label id="answer"> </label> </p>