微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在javascript中将大的负科学记数字转换为十进制记号字符串?

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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐