我对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的值。
有没有办法解决这个问题?谢谢!
答案 0 :(得分:8)
在Perl和其他一些语言中,数字的 power 不是插入符号,它是双星号。所以你需要写
$sidecheck=sqrt((-2130.07-(-2084.46))**2+(207.56-210.76)**2);
^
是按位XOR运算符。要平方值,请使用**