【问题标题】: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>