Perl - 平方根结果

时间:2013-12-04 10:30:57

标签: perl sqrt

我对Perl的世界很新,我对sqrt功能感到困惑。 卡住我的意思是函数没有返回它应该的值。

在读取带有坐标信息的文本文件后,8个值存储在单独的变量中($ x1,$ y1,$ x2,$ y2等)。然后,调用子程序,计算点之间的距离,然后计算其他事物。但是,它没有做它应该做的事情,因为sqrt函数的结果不是它们应该的结果!我认为这是如何获取和存储变量的问题,但在使用文字值执行sqrt之后,它也会产生错误的数字。

以下是值

    -2130.07 207.56  -2084.46 210.76  -1892.78 -2525.74  -1938.39 -2528.93

以下是sqrt计算......

    $side1=sqrt(($x1-$x2)^2+($y1-$y2)^2);
    $sidecheck=sqrt((-2130.07-(-2084.46))^2+(207.56-210.76)^2);

$ side1和$ sidecheck都返回6.7823而不是45.722的值。

有没有办法解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:8)

在Perl和其他一些语言中,数字的 power 不是插入符号,它是双星号。所以你需要写

$sidecheck=sqrt((-2130.07-(-2084.46))**2+(207.56-210.76)**2);

^是按位XOR运算符。要平方值,请使用**