gpt4 book ai didi

javascript - 构建一个始终显示 6 或 9 次方的计算器

转载 作者:行者123 更新时间:2023-11-28 03:19:29 25 4
gpt4 key购买 nike

我有一个基于计数器的计算,它给了我一个很大的数字,我将其转换为指数。然后我将其拆分以显示数字 x 10 ^ 指数。问题是,如果小于 10 亿,用户总是希望将数字显示到 ^6,如果超过 10 亿,则始终希望将数字显示到 ^9。我需要找出一种根据指数差移动结果小数的方法。

例如,如果结果26 x 1000 x 10^4 显示为 2.6 x 10^8 我需要将其显示为 260 x 10^6。
如果 9 x 10 x 10^4 显示为 9 x 10^5 我需要显示为 .9 x 10^6

代码如下:

var button = document.getElementById("AddOne");

var count = 0;

function Count() {
//count and beep

count += 1;
//AddOne.innerHTML = count;
YCount.innerHTML = count;
//document.getElementById("myAudio").load();
//document.getElementById("myAudio").play();
}

function Calculate() {
var calc
var y = document.getElementById("YCount").innerHTML;
var dilution = document.getElementById("Dilution").value;
if (dilution) {
calc = y * dilution * Math.pow(10, 4);
} else {
calc = y * Math.pow(10, 4);
}

//getting exponential and only 2 digits after decimal
//var expon = calc.toExponential(2);
var expon = calc.toExponential();

var fValue = expon.substring(0, expon.indexOf("e+"));
var sup = expon.substring(expon.indexOf("e") + 2);
//var test = fValue.toFixed(2);
var floor = 6 * Math.floor(sup / 6);
var dec = 1 + (sup % 6);

//take the decimal value -subtract 1 and move left by that number



var result = document.getElementById("Result").innerHTML = "Result: " + calc + "<br />Exponential: " + calc.toExponential() + "<br /> Power: " + fValue + " x 10<sup>" + sup + "</sup><br />Floor: " + floor + "<br />Decimal shift: " + dec;



}
<!DOCTYPE html>
<html>

<head>
<meta name="description" content="">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>

<body>
<p>Calculation: <br />Number<br />
<span class="tab">= total </span><br />
<span class="tab">x dilution factor (if any) x (1 x 10<sup>4</sup>) </span></p>
<br />
<button id="AddOne" onclick="Count()" type="button" class="button">Count</button>

<br /><br />
<label id="YCount"> </label> X <input type="text" id="Dilution" placeholder="dilution factor" /> X 10<sup>4</sup>

<button class="button" id="Answer" type="button" onclick="Calculate()">Calculate</button>
<br /<br />
<br /><label id="Result">Result: </label>
</body>

</html>

最佳答案

您可以直接编写您的需求,如下所示:

var sup = 9;
if(calc < 1e+9)
sup = 6;
var fValue = calc / Math.pow(10, sup);

这是完整的修改后的代码片段。

var button = document.getElementById("AddOne");

var count = 0;

function Count() {
//count and beep

count += 1;
//AddOne.innerHTML = count;
YCount.innerHTML = count;
//document.getElementById("myAudio").load();
//document.getElementById("myAudio").play();
}

function Calculate() {
var calc
var y = document.getElementById("YCount").innerHTML;
var dilution = document.getElementById("Dilution").value;
if (dilution) {
calc = y * dilution * Math.pow(10, 4);
} else {
calc = y * Math.pow(10, 4);
}

//getting exponential and only 2 digits after decimal
//var expon = calc.toExponential(2);
var expon = calc.toExponential();

var sup = 9;
if(calc < 1e+9)
sup = 6;
var fValue = calc / Math.pow(10, sup);

var floor = 6 * Math.floor(sup / 6);
var dec = 1 + (sup % 6);

//take the decimal value -subtract 1 and move left by that number



var result = document.getElementById("Result").innerHTML = "Result: " + calc + "<br />Exponential: " + calc.toExponential() + "<br /> Power: " + fValue + " x 10<sup>" + sup + "</sup><br />Floor: " + floor + "<br />Decimal shift: " + dec;



}
<!DOCTYPE html>
<html>

<head>
<meta name="description" content="">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>

<body>
<p>Calculation: <br />Number<br />
<span class="tab">= total </span><br />
<span class="tab">x dilution factor (if any) x (1 x 10<sup>4</sup>) </span></p>
<br />
<button id="AddOne" onclick="Count()" type="button" class="button">Count</button>

<br /><br />
<label id="YCount"> </label> X <input type="text" id="Dilution" placeholder="dilution factor" /> X 10<sup>4</sup>

<button class="button" id="Answer" type="button" onclick="Calculate()">Calculate</button>
<br /<br />
<br /><label id="Result">Result: </label>
</body>

</html>

关于javascript - 构建一个始终显示 6 或 9 次方的计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59298345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com