Perl - 大指数会导致错误:参数"XXX"在printf中不是数字的



在 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

用于打印到文件的 print 语句为:

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使用(。

相关内容

最新更新