我有这个程序:
my $d = 40000 * 100 / 360;
print "At the equator\n";
printf "%9s° = %10.3f meters\n", 10**-$_, 10**-$_ * $d for 0 .. 7;
输出
At the equator
1° = 11111.111 meters
0.1° = 1111.111 meters
0.01° = 111.111 meters
0.001° = 11.111 meters
0.0001° = 1.111 meters
1e-05° = 0.111 meters
1e-06° = 0.011 meters
1e-07° = 0.001 meters
如何修复我的程序,使指数符号不用于较小的数字?
printf "%9.${_}f° = %9.3f meters\n", 10**-$_, 10**-$_ * $d for 0 .. 7;
或
printf "%9.*f° = %9.3f meters\n", $_, 10**-$_, 10**-$_ * $d for 0 .. 7;
输出:
1° = 11111.111 meters
0.1° = 1111.111 meters
0.01° = 111.111 meters
0.001° = 11.111 meters
0.0001° = 1.111 meters
0.00001° = 0.111 meters
0.000001° = 0.011 meters
0.0000001° = 0.001 meters