将1除以5198000时,JavaScript中出现除法错误



我正在构建一个简单的加密货币转换页面,在大多数情况下需要对利率进行除法和乘法运算。我得到的错误是,当我把1除以5198000时,结果是1.923816852635629e-7我意识到即使是计算器也能给出同样的结果。如何在JavaScript中修复此问题?

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

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

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

这是科学记数法。十进制格式为0.00000019238168522635629。生成此字符串以在负指数的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(

然而,需要强调的是,最终结果是字符串,而不是数值,因此如果您需要用它进行进一步的数学运算,它将不会很有用。

最新更新