如何处理非常小的分子的除法?

问题描述 投票:0回答:1

我正在开发一个 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>

我以为不管它有多小,它都会继续处理,但事实证明它的精度和准确度不够。

javascript math floating-point
1个回答
0
投票

也许你可以尝试这样的事情:

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]]}
© www.soinside.com 2019 - 2024. All rights reserved.