converter_scientific_notation_to_decimal_notation(‘1.34E-15’)或converter_scientific_notation_to_decimal_notation(1.34E-15)
=> ‘0.00000000000000134’
converter_scientific_notation_to_decimal_notation(‘2.54E-20’)或
converter_scientific_notation_to_decimal_notation(2.54E-20)
=> ‘0.000000000000000000254’
Javascript中是否存在此类函数?
parseFloat不适合大的负面科学数字.
parseFloat('1.34E-5') => 0.0000134 parseFloat('1.34E-15') => 1.34e-15
解决方法
这适用于具有指数“E”,正或负的任何正数或负数. (您可以通过前缀”将数字字符串转换为数字,或者将其作为字符串方法或任何对象的方法,并调用字符串或数字.)
Number.prototype.noExponents= function(){ var data= String(this).split(/[eE]/); if(data.length== 1) return data[0]; var z= '',sign= this<0? '-':'',str= data[0].replace('.',''),mag= Number(data[1])+ 1; if(mag<0){ z= sign + '0.'; while(mag++) z += '0'; return z + str.replace(/^\-/,''); } mag -= str.length; while(mag--) z += '0'; return str + z; } var n=2.54E-20; n.noExponents();
返回值:
"0.0000000000000000000254"