比较Perl中具有特定范围的两个十进制值

克里希

我是Perl的新手。我有两组不同的数组。这两个具有十进制值的数组都没有精确匹配,可能只有+0.5有所不同-0.5我尝试了此程序,但无法正常工作。

@inpt = qw(1003.3965 1036.4392 1037.3843 1045.4459 1101.4259 1107.4253 1118.3928 1191.4904 1320.4855 1420.6291 1440.6921 1562.6698 1742.7587 2084.9137 2248.8761 2337.8865 2628.9931);
@outpt = qw(1191.6017 1101.5336 2629.2865 1742.9336 1036.5726 2338.1574 2249.1057 1440.8222 1440.2074);

foreach $s (@outpt){

    $inc = $s + 0.5;
    $dec = $s - 0.5;

   foreach $p ( @inpt ) {
        if ( $p .. $inc ) {           
            print "$p \t $inc";
        }
        elsif ( $p .. $dec ) {
            print "$p \t $dec";
        }
    }
}

我期望下面的输出。所述@outpt的值1191.6017是与范围匹配+0.5-0.5@inpt的价值1191.4904

outpt          inpt
1191.6017     1191.4904
1101.5336     1101.4259
2629.2865     2628.9931
1742.9336     1742.7587
1036.5726     1037.3843
2338.1574     2337.8865
2249.1057     2248.8761
1440.8222     1440.6291
1440.2074     1440.6291
列伊

尝试这个:

use strict;
use warnings;

my $limit = 0.5;
my $result = "";

my @inpt = qw(1003.3965 1036.4392 1037.3843 1045.4459 1101.4259 1107.4253 1118.3928 1191.4904 1320.4855 1420.6291 1440.6921 1562.6698 1742.7587 2084.9137 2248.8761 2337.8865 2628.9931);
my @outpt = qw(1191.6017 1101.5336 2629.2865 1742.9336 1036.5726 2338.1574 2249.1057 1440.8222 1440.2074);

foreach my $s (@outpt){
   foreach my $t (@inpt) {
      if($s >= $t - $limit && $s <= $t + $limit) {
          $result .= "$s \t $t\n";
      }
   }
}     
print $result;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL-筛选两个列中具有完全相同的十进制值的行

如何比较两个大十进制

如何将两个具有十进制值的变量加在一起?

在JavaScript中添加和比较两个十进制数

如何在android studio中获得两个十进制值之间的总和

当它们的数据类型不同时,如何将SQL中的两个值与给定的十进制精度进行比较?

在熊猫中仅保留具有特定十进制值的行

忽略 6 位十进制数字后的所有内容的两个双打的快速比较

在 C 中创建一个具有递增十进制值的数组

范围中的两个值具有最大异或

比较NumPy arange和自定义范围函数以产生具有十进制增量的范围

只需要两个十进制值的百分比

使用Java检查两个大十进制值之间的百分比

检查字符串中的两个十进制数字

仅显示存储在数组中的两个十进制数字

颤振输入中仅允许使用两个十进制数字?

十进制?-可为空的对象必须具有一个值

如何比较iOS中具有几乎相同的阴影或范围的两个UIColor?

使用Arange在十进制值列表中查找十进制值有麻烦

具有舍入值的大十进制转换

创建具有十进制值的数据框

比较两个具有特定值的列表以进行读取

两个十进制值的差返回负数,我需要一个零下限

比较两个具有特定约束的NSD

比较Pandas中的两个Excel文件,并在两个列中返回具有相同值的行

比较具有重复输入值的两个文件

如何检查浮点值是否在某个范围内并且具有给定的十进制数字?

根据mysql中的第三个十进制值舍入到最接近的两位十进制

如何根据前一行中的十进制值的比较来唯一标识 TSQL 中的特定行?