这是我的代码:
function engineeringNotation(number) {
var space = ' ';
// Giga
if(number >= 1e10)
return (number / 1e9).toFixed(1) + space + 'G';
else if(number >= 1e9)
return (number / 1e8).toFixed(0) / 10 + space + 'G';
// Mega
else if(number >= 1e7)
return (number / 1e6).toFixed(1) + space + 'M';
else if(number >= 1e6)
return (number / 1e5).toFixed(0) / 10 + space + 'M';
// Kilo
else if(number >= 1e4)
return (number / 1e3).toFixed(1) + space + 'k';
else if(number >= 1e3)
return (number / 1e2).toFixed(0) / 10 + space + 'k';
// Unit
else if(number >= 1e1)
return (number / 1e0).toFixed(0) + space + '';
else
return (number / 1e-1).toFixed(0) / 10 + space + '';
}
基本上,它需要一个数字,并以“工程符号”将其返回到小数点后一位。例如,1234
变成1.2 k
。我觉得我在重复自己很多。上面的代码可以改进和干燥吗?