javascript 会把数字自动转成科学记数法,现在用一个函数来把数字转回原本的形式显示。
面向对象继承的方式
Number.prototype.noExponents= function(){
const data= String(this).split(/[eE]/);
if(data.length === 1) return data[0];
let 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;
};
函数式的方法
const noExponents = (exponent) => {
const data = String(exponent).split(/[eE]/);
if(data.length === 1) return data[0];
let z= '', sign = exponent<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;
};
显示效果
const num = 0.0000000001;
console.log(num.noExponents()); // 0.0000000001
console.log(noExponents(num)); // 0.0000000001
console.log(num); // 1e-10
网友评论