我正在开发一个 JavaScript 计算器,并面临除法运算的问题。当非常小的分子除以大的分母时,结果变为“0”。这不是所需的行为。理想情况下,计算器应该:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Approaching Zero</title>
</head>
<body>
<script>
const result = 1.2e-321 / 99999999999999;
console.log(result);
</script>
</body>
</html>
我以为不管它有多小,它都会继续处理,但事实证明它的精度和准确度不够。
也许你可以尝试这样的事情:
function decomp(n) {
let exp=0;
while(n<1|n>10){
if(n<1){n*=10;exp++;}
else if(n>10){n/=10;exp--;}
else return [n, exp];
}
}
function division(n, d) {n=decomp(n);d=decomp(d);return [n[0]/d[0], n[1]/d[1]]}