【问题标题】:Division error in JavaScript when dividing 1 by 51980001 除以 5198000 时 JavaScript 中的除法错误
【发布时间】:2020-12-27 06:48:19
【问题描述】:

我正在构建一个简单的加密货币转换页面,在大多数情况下它需要除以和乘以汇率。 我得到的错误是当我将 1 除以 5198000 时,我得到 1.923816852635629e-7 结果 我意识到即使是计算器也给出了相同的输出。 如何在 JavaScript 中解决这个问题?

下面的代码在控制台中返回 1.923816852635629e-7 变量 num1=1; var num2=5198000;

var 输出=num1/num2; console.log(输出);

有没有办法转换或绕过它。

【问题讨论】:

标签: javascript math cryptojs


【解决方案1】:

这是科学记数法。十进制格式为 0.0000001923816852635629。生成此字符串以在 UI 中显示负指数的代码大致如下:

var foo = 1/5198000; // scientific value
var sciStr= '' + foo; //cast scientific value to string
var w = '' + sciStr.substring(0, sciStr.indexOf('e')); // extract numerical value
var exp = Math.abs(parseInt(sciStr.substring(sciStr.indexOf('e')+1, sciStr.length))); // get absolute numerical exponent value

// write appropriate number of 0's
var expStr= '0.';
for (var i = 1; i < exp; i++) {
    expStr+='0'; 
}
w = w.substring(0,1)+w.substring(2,w.length) // strip decimal from scientific value

console.log('the decimal form is:')
console.log(expStr+w) // outputs '0.0000001923816852635629'

您需要修改此代码以适用于正指数(在末尾添加 0)

不过,这里要强调的是,最终结果是一个字符串,而不是一个数值,所以如果你需要对它进行进一步的数学运算,它不会很有用。 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-08
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2020-12-24
    • 1970-01-01
    相关资源
    最近更新 更多