perl - 如何在 Perl 中将像 3 10^-20 这样的字符串转换为数字?

标签 perl numbers

我有一个包含数字列表的文件,如下所示:

10^-92
2 10^-14
10^-105
3 10^-20

进一步解释 10^-92本质上是 1E-922 10^-142E^-14 .
是否有一种紧凑的方法可以将上述文件中的数字转换为 Perl 数字?最后,我想按数字对这些数字进行排序。

最佳答案

如果您的所有数字都需要相同的转换才能成为 Perl 的数字,为什么不使用正则表达式替换:

use 5.010;

my @nums = ('10^-92', '2 10^-14', '10^-105', '3 10^-20');

s{ (\d*) \s* 10\^ }{ ($1 || 1) . 'e' }xe for @nums;

say "@nums";  # 1e-92 2e-14 1e-105 3e-20

关于perl - 如何在 Perl 中将像 3 10^-20 这样的字符串转换为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642149/

相关文章:

linux - 我怎么知道为什么我的 Perl 代码在内核空间 ("sy"中花费这么多时间)?

javascript - js双值范围检查

javascript 表示 4 高于 16

javascript - 将数字转换为 Unicode 符号

perl - Perl中如何查看目录是否存在?

regex - 负前瞻正则表达式

java - 如何制作一个Java猜谜游戏程序

c# - 降序数字 C#

perl - 调试 perl 脚本

regex - 使用 sed 替换复杂模式