toExponential() 仅适用于具有有效 fractionDigits 的大数
toExponential() for large numbers with significant fractionDigits only
我想用有限位数的指数表示法格式化大数 (>1e5),但跳过不必要的零数字。
expect(print(100000)).toBe('1e5');
expect(print(123456)).toBe('1,234e5');
expect(print(101000)).toBe('1,01e5');
value.toExponential(3)
给我 1.000e+5
、1,234e+5
、1,010+5
value.toExponential()
给我 1e+5
、1,23456e+5
、1,01+5
我可以想象出类似 123456 -> 1.23456 -> "1.234" -> 1.234 -> 123400 -> "1.234e+5"
的东西,但我希望有更好的方法来做到这一点。如果不是,那么这种转换的好的实现是什么。
如果在 e
之前不需要任何额外的 0
,可以这样做:
value.toExponential(3).replace(/0+e/,'e').replace('.e','e')
或者您可以这样做:
value.toExponential().replace(/[,.](\d{3})\d*e/,'.e')
将3
替换为所需的小数位数。
我想用有限位数的指数表示法格式化大数 (>1e5),但跳过不必要的零数字。
expect(print(100000)).toBe('1e5');
expect(print(123456)).toBe('1,234e5');
expect(print(101000)).toBe('1,01e5');
value.toExponential(3)
给我 1.000e+5
、1,234e+5
、1,010+5
value.toExponential()
给我 1e+5
、1,23456e+5
、1,01+5
我可以想象出类似 123456 -> 1.23456 -> "1.234" -> 1.234 -> 123400 -> "1.234e+5"
的东西,但我希望有更好的方法来做到这一点。如果不是,那么这种转换的好的实现是什么。
如果在 e
之前不需要任何额外的 0
,可以这样做:
value.toExponential(3).replace(/0+e/,'e').replace('.e','e')
或者您可以这样做:
value.toExponential().replace(/[,.](\d{3})\d*e/,'.e')
将3
替换为所需的小数位数。