Perl-大指数是否会导致错误:Argument“;XXX“;isn';printf中的t数字

Perl-大指数是否会导致错误:Argument“;XXX“;isn';printf中的t数字,perl,Perl,在OpenSuse 42.3上运行的Perl脚本给出错误:参数“1.000+136”在printf中不是数字。该脚本读取许多以指数形式格式化的数字,并将它们写入一个新文件。这是脚本在包含数百个数字的文件中抱怨的唯一数字。该文件具有以下格式: 23. OH+HO2=H2O+O2

在OpenSuse 42.3上运行的Perl脚本给出错误:参数“1.000+136”在printf中不是数字。该脚本读取许多以指数形式格式化的数字,并将它们写入一个新文件。这是脚本在包含数百个数字的文件中抱怨的唯一数字。该文件具有以下格式:

23. OH+HO2=H2O+O2                                                                                                                                                                        
         2.510E+12    2.000    40000.000
      Declared duplicate reaction...
24. OH+HO2=H2O+O2                                                                                                                                                                        
         1.000+136  -40.000    34800.000
      Declared duplicate reaction...
25. H2O2+H=HO2+H2                                                                                                                                                                        
         6.050E+06    2.000     5200.000
用于打印到文件的打印语句是:

printf Outfile "\{ a = %.3E n = %5.3f E = %7.3f ",$kA[$ireac],$kb[$ireac],$kE[$ireac];

是否该数字的指数为136可能导致问题?有没有办法解决这样的问题?

在这种情况下,字符串将自动被加密,但前提是它的值将是有效的Perl


1.000+136
应该是
1.000E+136
E
被省略)或
1.000E136
+
E
的插入部分使用)。

在这种情况下,字符串将被自动加密,但前提是其值将是有效的Perl


1.000+136
应该是
1.000E+136
E
被省略)或
1.000E136
+
被用于
E
)。

我看不出你的答案在哪里。这个问题有解决办法吗?“1.000+136”是Perl可以用格式化输出写入的数字吗?Re“这个问题有解决方案吗”,正如我提到的,您应该使用
1.000E136
1.000E+136
而不是
1.000+136
。Re“1.000+136”是Perl可以用格式化输出写入的数字吗。Perl是一种通用编程语言。谢谢你的澄清。我的眼睛掩盖了这个数字中缺少“E”的事实。我想我必须更深入地了解为什么写这个数字的代码决定删除这个数字的E。我看不出你的答案是什么。这个问题有解决方案吗?是“1.000+136”吗“Perl可以用格式化输出写入的数字?Re”这个问题有解决方案吗?正如我提到的,您应该使用
1.000E136
1.000E+136
而不是
1.000+136
。Re“1.000+136”当然是Perl可以用格式化输出写入的数字吗。Perl是一种通用编程语言。谢谢你的澄清。我的眼睛掩盖了一个事实,即这个数字中缺少了“E”。我想我必须更深入地了解,为什么写这个数字的代码决定只为那个特定的数字删除E。