如何在Perl中使用科学和十进制表示法进行转换?

Kur*_*cht 6 perl scientific-notation decimal notation

我知道这是一个全新的问题,但对许多新程序员来说,答案可能并不明显.这对我来说最初并不明显,所以我在互联网上搜索Perl模块来完成这个简单的任务.

Kur*_*cht 17

sprintf成功

use strict;
use warnings;

my $decimal_notation = 10 / 3;
my $scientific_notation = sprintf("%e", $decimal_notation);

print "Decimal ($decimal_notation) to scientific ($scientific_notation)\n\n";

$scientific_notation = "1.23456789e+001";
$decimal_notation = sprintf("%.10g", $scientific_notation);

print "Scientific ($scientific_notation) to decimal ($decimal_notation)\n\n";
Run Code Online (Sandbox Code Playgroud)

生成此输出:

Decimal (3.33333333333333) to scientific (3.333333e+000)

Scientific (1.23456789e+001) to decimal (12.3456789)
Run Code Online (Sandbox Code Playgroud)

  • 我不得不使用"%.10f"来获取小数值,因为"g"将其保持为科学记数法.我在Ubuntu上使用Perl v5.10.1.好帖子,谢谢! (3认同)
  • 我无法让"sprintf"工作,但是`printf`和`%.10f`而不是`g`工作正常.Perl版本5.14.2. (3认同)