在 perl 中打印 .00001 的解决方法

问题描述 投票:0回答:1

我有这个程序:

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

如何修复我的程序,使指数符号不用于较小的数字?

perl printf precision
1个回答
1
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.