对于具有紧凑空间限制的图形注释,我想以最小化每个数字的表示字符串长度的方式格式化数字。例如,10 的幂应该这样格式化:
- 1e-4
- 1e-3
- 0.01
- 0.1
- 1
- 10
- 100
- 1e3
- 1e4
as.character
似乎几乎做到了这一点,但不幸的是,它在个位数指数中放置了一个冗余的前导零,并在正指数之前插入了一个冗余的“+”。
> as.character(10^(-5:5))
[1] "1e-05" "1e-04" "0.001" "0.01" "0.1" "1" "10" "100" "1000" "10000" "1e+05"
因此,例如,我们得到的不是 1e5,而是 1e+05,它的长度几乎是两倍。